我应该对我的代码进行哪些更改才能使我的代码正常工作?
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
所以我正在尝试实现一个函数 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