假设我有两个或多个相同长度的列表。什么是遍历它们的好方法?
a
,b
是列表。
for i, ele in enumerate(a):
print ele, b[i]
或者
for i in range(len(a)):
print a[i], b[i]
还是我缺少任何变体?
使用其中一个有什么特别的优势吗?
假设我有两个或多个相同长度的列表。什么是遍历它们的好方法?
a
,b
是列表。
for i, ele in enumerate(a):
print ele, b[i]
或者
for i in range(len(a)):
print a[i], b[i]
还是我缺少任何变体?
使用其中一个有什么特别的优势吗?
通常的方法是使用zip()
:
for x, y in zip(a, b):
# x is from a, y is from b
a
当两个可迭代对象中较短的一个b
被耗尽时,这将停止。另外值得注意的是:(itertools.izip()
仅限 Python 2)和itertools.izip_longest()
(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