可能重复: How do you split a list into evenly sized chunks in Python?
这个想法很简单,我想做这样的事情:
for elem1, elem2, elem3 in list:
<some code>要使这个工作正常,我们需要这个列表是一个包含3次迭代的列表,如下所示:
list = [[1, 2, 3], [4, 5, 6]]但是,如果这个列表只是一个常规列表,我能做些什么呢?
list = [1, 2, 3, 4, 5, 6]是否有任何快速和简单的方法将这个常规列表转换为3-迭代列表,这样循环才能工作?或者n-迭代,我在这里用3作为例子。
谢谢。
发布于 2013-01-14 08:06:26
使用迭代工具中的grouper配方:
def grouper(n, iterable, fillvalue=None):
"Collect data into fixed-length chunks or blocks"
# grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx
args = [iter(iterable)] * n
return izip_longest(fillvalue=fillvalue, *args)就像:
for a, b, c in grouper(3, some_list):
pass # whateverhttps://stackoverflow.com/questions/14314985
复制相似问题