蟒蛇 3
for f, b in zip(foo, bar):
print(f, b)
zip
在 较短的 或 停止时停止。foo
bar
在Python 3中,zip
返回元组的迭代器,就像在Python2中一样。要获取元组列表,请使用 。要压缩直到两个迭代器都用尽,您可以使用 itertools.zip_longest。itertools.izip
list(zip(foo, bar))
Python 2
在 Python 2 中,zip
返回元组列表。当并且不是巨大的时,这很好。如果它们都是巨大的,那么形成是一个不必要的大临时变量,应该替换为 or ,它返回迭代器而不是列表。foo
bar
zip(foo,bar)
itertools.izip
itertools.izip_longest
import itertools
for f,b in itertools.izip(foo,bar):
print(f,b)
for f,b in itertools.izip_longest(foo,bar):
print(f,b)
izip
在任一或用尽时停止。 当两者都用尽时停止。当较短的迭代器用尽时,将生成一个元组,其位置与该迭代器相对应。如果您愿意,您还可以设置不同的。有关完整故事,请参阅此处。foo
bar
izip_longest
foo
bar
izip_longest
None
fillvalue
None
还要注意,它的 -like brethen 可以接受任意数量的可迭代对象作为参数。例如zip
zip
for num, cheese, color in zip([1,2,3], ['manchego', 'stilton', 'brie'],
['red', 'blue', 'green']):
print('{} {} {}'.format(num, color, cheese))
指纹
1 red manchego
2 blue stilton
3 green brie