python如何用for遍历两个列表

python如何用for遍历两个列表

作者:William Gu发布时间:2026-01-14阅读时长:0 分钟阅读次数:5

用户关注问题

Q
怎样同时遍历两个列表中的元素?

我有两个长度相同的列表,想在一个循环中同时访问它们的元素,该怎么做?

A

使用zip函数并在for循环中遍历

可以使用Python内置的zip函数将两个列表组合成一个可迭代对象,然后在for循环中同时遍历它们。例如:

list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
for item1, item2 in zip(list1, list2):
    print(item1, item2)

这样就能逐对访问两个列表中的元素。

Q
如何处理两个长度不一样的列表遍历?

如果两个列表长度不一致,直接使用zip遍历会怎样?有没有办法同时遍历所有元素?

A

zip会以最短列表长度为准,使用itertools.zip_longest解决

默认情况下,zip函数会以较短列表的长度终止迭代,忽略多余元素。如果想遍历所有元素,可以使用itertools模块中的zip_longest函数,它会用指定的填充值补齐较短的列表。例如:

from itertools import zip_longest

list1 = [1, 2, 3, 4]
list2 = ['a', 'b']

for item1, item2 in zip_longest(list1, list2, fillvalue=None):
    print(item1, item2)

这样可以避免遗漏元素。

Q
遍历两个列表时如何获取下标?

遍历两个列表,除了元素外,我还想获得当前循环的索引,有什么方法?

A

结合enumerate和zip实现同步下标访问

可以用enumerate配合zip函数,在遍历时同时获取索引和值,如下示例:

list1 = [10, 20, 30]
list2 = ['x', 'y', 'z']

for index, (val1, val2) in enumerate(zip(list1, list2)):
    print(f"Index {index}: {val1}, {val2}")

这便于在遍历过程中使用元素的下标。