要迭代多个列表,您可以使用内置函数zip
。根据文档,此函数返回一个元组列表,其中第 i 个元组包含每个参数序列或可迭代对象中的第 i 个元素。因此,应用于您的特定示例
list1 = [ 'one', 'two', 'three' ]
list2 = [ 'I', 'II', 'III', 'IV', 'V' ]
for word in list1:
print word + " from list1"
for roman in list2:
print roman + " from list2"
for word, roman in zip(list1, list2):
print word + " from list1"
print roman + " from list2"
zip 的唯一缺点是,当您的列表(如此例中所示)长度不相等时,zip 将返回一个元组列表,每个元组的维度等于较小的元组。为了支持最长的一个,并在必要时填充 None,只需将 zip 替换为itertools.izip_longest:
from itertools import izip_longest
list1 = [ 'one', 'two', 'three' ]
list2 = [ 'I', 'II', 'III', 'IV', 'V' ]
for word in list1:
print word + " from list1"
for roman in list2:
print roman + " from list2"
for word, roman in izip_longest(list1, list2):
print word + " from list1"
print roman + " from list2"