我有一个小的脚本,它包含一个列表和一个值,该值表示将列表分成多少大小的子列表:
def chunk(alist, n):
i = 0
j = n
while j < (len(alist) + 2):
sub = alist[i:j]
i += n
j += n
print(sub)
chunk([1, 2, 3, 4, 5], 2)
这有效。我得到[1,2] [3,4] [5]
但是,如果我尝试从函数返回sub并在循环中将其打印出来,它将失败:*之后的参数必须是可迭代的,而不是int
def chunks(alist, n):
i = 0
j = n
while j < (len(alist) + 2):
sub = alist[i:j]
i += n
j += n
return sub
for chunk in chunks([1, 2, 3, 4, 5], 2):
print(*chunk)
sub是一个可迭代的(列表)。不知道我在做什么错。
注意不能使用itertools或任何其他附件。
您的sub
变量仅包含列表的一部分。相反,应将其作为chunks
函数的返回值附加到列表列表中:
def chunks(alist, n):
i = 0
j = n
output = []
while j < (len(alist) + 2):
output.append(alist[i:j])
i += n
j += n
return output
for chunk in chunks([1, 2, 3, 4, 5], 2):
print(*chunk)
输出:
1 2
3 4
5
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句