我想将列表拆分为指定长度的子列表。如果最后一块不是指定的长度,它将从列表的第一个元素开始增加。
下面的Python程序产生除最后一块以外的相等子列表。
def split_list(the_list, chunk_size):
result_list = []
while the_list:
result_list.append(the_list[:chunk_size])
the_list = the_list[chunk_size:]
return result_list
a_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print split_list(a_list, 3)
输出:
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
我想要这样的东西:
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 1, 2]]
检查最后一个列表块中是否缺席。如果是这样,请精确添加所需数量的元素,重复数量从列表的开头开始。
def split_list(the_list, chunk_size):
result_list = []
short = len(the_list) % chunk_size
if short:
# Add wrap-around elements from front of the_list
the_list.extend(the_list[:chunk_size-short])
while the_list:
result_list.append(the_list[:chunk_size])
the_list = the_list[chunk_size:]
return result_list
a_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(split_list(a_list, 3))
输出:
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 1, 2]]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句