Python 一次迭代多个列表的最佳方式是什么?

Python 一次迭代多个列表的最佳方式是什么?,python,Python,假设我有两个或更多相同长度的列表。迭代它们的好方法是什么 a,b是列表 for i, ele in enumerate(a): print ele, b[i] 或 或者我遗漏了什么变体 使用一个比另一个有什么特别的优点吗?通常的方法是使用: 当两个iterablesa和b中的较短者用完时,此操作将停止。同样值得注意的是:(仅限Python 2)和(itertools.zip_longest())在Python 3中。您可以使用zip: >>> a = [1, 2,

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

a
b
是列表

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

或者我遗漏了什么变体

使用一个比另一个有什么特别的优点吗?

通常的方法是使用:


当两个iterables
a
b
中的较短者用完时,此操作将停止。同样值得注意的是:(仅限Python 2)和(
itertools.zip_longest()
)在Python 3中。

您可以使用
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

比我快。值得注意的是,Python3的
zip
izip
。另外,没有
zip\u longest
但是
map(None,a,b)
可以做到。@ephemient:后者同样只在Python 2上实现。在Python3上,这将在最短的序列上停止。Python3上的
izip_longest()
被称为
zip_longest()
。@SvenMarnach但是当两个列表中的一个结束时,zip停止,如果我想迭代到python3@Abhay这实际上也在上面得到了回答–您需要使用
iterloos.zip\u longest()
for x, y in zip(a, b):
    # x is from a, y is from b
>>> a = [1, 2, 3]
>>> b = ['a', 'b', 'c']
>>> for x, y in zip(a, b):
...   print x, y
... 
1 a
2 b
3 c