python如何同时遍历两个列表

python如何同时遍历两个列表

作者:Rhett Bai发布时间:2026-01-14阅读时长:0 分钟阅读次数:3

用户关注问题

Q
如何用Python同时访问两个列表中的元素?

我有两个列表,想在循环中同时获取它们对应位置的元素,有什么简单的方法吗?

A

使用zip函数并行遍历两个列表

可以使用Python内置的zip函数,它会将两个列表对应位置的元素打包成元组,从而实现同时遍历。例如:

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

for num, char in zip(list1, list2):
    print(num, char)

这样就能在一个循环中同时访问两个列表的元素。

Q
两个长度不一样的列表怎样同时遍历?

如果两个列表长度不同,想遍历时不丢失数据,有没有办法做到?

A

利用itertools.zip_longest处理不同长度的列表

当两个列表长度不一致时,可以使用itertools模块中的zip_longest函数,它会用指定的填充值补齐较短的列表,使两个列表能够一起遍历。例如:

from itertools import zip_longest
list1 = [1, 2, 3]
list2 = ['a', 'b']

for num, char in zip_longest(list1, list2, fillvalue=None):
    print(num, char)

这能确保循环到最长列表的末尾,同时保留对应的元素。

Q
遍历两个列表时如何获取索引?

有时候除了元素,还想知道循环的索引位置,怎么实现遍历两个列表并获得索引?

A

结合enumerate和zip获取索引和对应元素

可以先用zip函数同步遍历两个列表,然后使用enumerate给循环加上索引。例如:

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

for index, (num, char) in enumerate(zip(list1, list2)):
    print(f"索引{index}: {num} 和 {char}")

这样能同时获得索引以及两个列表中的对应元素。