我应该对我的代码进行哪些更改才能使我的代码正常工作?

What changes to my code should I make so that my code would work?

所以我正在尝试实现一个函数 ptt(L:List[int],k:int) returns 一个包含 L 分区的嵌套列表,其中列表的每个元素本身就是一个包含恰好 k 个元素的列表(除了最后一个可能少于 k 个元素的分区)。例如,当 L = [1,2,3,4,5,6,7]k = 2 时,partition(L, k) returns [[1,2],[3,4],[5,6],[7]]。这里还有几个例子。

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]]

这是我对代码的尝试...

def ptt(L, k):
    if (L == 0 or k == 0 or k > L):
        return 0
    if (k == 1 or k == L):
        return 1
    return (k * ptt(L - 1, k) +
                ptt(L - 1, k - 1))

但是,这根本不起作用...我应该对我的代码进行哪些更改以确保它起作用?

抱歉,这听起来很刺耳,但由于您正在学习编程,因此您应该学会使用 Internet 上最好的资源...google 搜索。大多数最初涉足的编程任务已经解决(多次)并且解决方案很容易获得。

一个简单的查询“将列表划分为子列表 python”会产生多个来源。 尝试: Split a python list into other "sublists" i.e smaller lists

解决办法是

chunks = [data[x:x+k] for x in range(0, len(data), k)]

此代码与您的方法有很大不同,但它会产生您要查找的结果:

def partition(nums, k):
    result = []
    for i in range(0, len(nums), k):
        result.append(nums[i:i+k])
    return result