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