You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复ptt列表分块函数代码,使其符合指定分块输出要求?

你当前编写的代码逻辑完全不符合需求,这段代码是第二类斯特林数的递推实现,用于计算将n个元素划分为k个非空子集的方案数,和列表按固定大小分块的需求没有关联。同时你对参数的理解也完全错误,需求中第一个入参L是整数列表,你当前代码里把L当作列表长度的整数值处理,返回值也是整数而非要求的嵌套列表,自然无法得到正确结果。

正确实现代码

from typing import List

def ptt(L: List[int], k: int) -> List[List[int]]:
    # 边界校验:k必须为正整数
    if k < 1:
        raise ValueError("参数k必须大于等于1")
    # 利用列表切片步长特性,按间隔k取子列表
    return [L[i:i+k] for i in range(0, len(L), k)]

测试用例验证

你给出的所有测试用例都可以正常通过:

  • assert ptt([1,2,3],2) == [[1,2],[3]] ✅
  • assert ptt([1,2,3],3) == [[1,2,3]] ✅
  • assert ptt([1,2,3,4],1) == [[1],[2],[3],[4]] ✅
  • assert ptt([1,2,3,4],2) == [[1,2],[3,4]] ✅
  • 示例输入ptt([1,2,3,4,5,6,7],2)返回[[1,2],[3,4],[5,6],[7]] ✅

内容的提问来源于stack exchange,提问作者jordan parker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 10:54:04