python的如何把两个列表进行合并遍历

python的如何把两个列表进行合并遍历

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

用户关注问题

Q
如何在Python中同时遍历两个列表?

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

A

使用zip()函数遍历两个列表

可以使用Python内置的zip()函数将两个列表打包成一个可迭代对象,在循环中同时获取两个列表对应位置的元素。例如:

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

这会输出:
1 a
2 b
3 c
当两个列表长度不一样时,zip()会以较短的列表长度为准。

Q
如何合并两个列表中的元素生成一个新的列表?

我想将两个列表的元素成对组合,生成一个新的列表,每个元素包含两个元素,应该怎么操作?

A

利用zip()生成元组列表

使用zip()函数可以轻松将两个列表对应位置的元素组合成元组,然后用list()转换成列表,例如:

list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
combined = list(zip(list1, list2))
print(combined)

输出结果为:
[(1, 'a'), (2, 'b'), (3, 'c')]
这样就得到了一个新列表,其中每个元素是两个列表中对应元素组成的元组。

Q
有没有方法可以遍历两个长度不同的列表?

当两个列表长度不一致时,想在遍历时不丢失较长列表中的元素,有什么好办法?

A

使用itertools.zip_longest()处理不同长度列表

Python的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)

输出为:
1 a
2 b
3 None
4 None
这样可以确保遍历完整个较长列表。