一次迭代两个或多个列表的更好方法

时间:2012-04-09 21:55:06

标签: python

假设我有两个或更多相同长度的列表。迭代它们的好方法是什么?

ab是列表。

 for i, ele in enumerate(a):
    print ele, b[i]

for i in range(len(a)):
   print a[i], b[i]

或者我缺少任何变种吗?

使用其中一种优于其他优势吗?

2 个答案:

答案 0 :(得分:113)

通常的方法是使用zip()

for x, y in zip(a, b):
    # x is from a, y is from b

当两个可迭代ab中较短的一个用尽时,这将停止。另外值得注意的是:itertools.izip()(仅限Python 2)和{3}}(Python 3中的itertools.zip_longest())。

答案 1 :(得分:13)

您可以使用zip

>>> a = [1, 2, 3]
>>> b = ['a', 'b', 'c']
>>> for x, y in zip(a, b):
...   print x, y
... 
1 a
2 b
3 c