📜  Python|同时迭代多个列表(1)

📅  最后修改于: 2023-12-03 14:46:27.171000             🧑  作者: Mango

Python | 同时迭代多个列表

在编写 Python 程序时,经常需要同时迭代多个列表或数据结构。Python 提供了多种方法来实现这样的迭代。

使用 zip() 函数

Python 内置的 zip() 函数可以将多个列表或数据结构“锁”在一起,实现同时迭代。zip() 函数将返回一个 zip 对象,需要使用 list() 函数将其转换为列表才能进行访问。

以下是一个使用 zip() 函数的示例代码:

list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
list3 = ['x', 'y', 'z']

for i, j, k in zip(list1, list2, list3):
    print(i, j, k)

输出结果为:

1 a x
2 b y
3 c z
使用 map() 函数

Python 内置的 map() 函数可以将多个列表或数据结构“合并”在一起,实现同时迭代。map() 函数将返回一个 map 对象,需要使用 list() 函数将其转换为列表才能进行访问。

以下是一个使用 map() 函数的示例代码:

list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
list3 = ['x', 'y', 'z']

for i in map(lambda x, y, z: (x, y, z), list1, list2, list3):
    print(i)

输出结果为:

(1, 'a', 'x')
(2, 'b', 'y')
(3, 'c', 'z')
使用 itertools 模块

Python 标准库中的 itertools 模块提供了多个函数来进行迭代操作,其中最常用的是 itertools.zip_longest() 函数。该函数与 zip() 函数类似,但可以处理不等长的列表或数据结构。

以下是一个使用 itertools.zip_longest() 函数的示例代码:

from itertools import zip_longest

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

for i, j, k in zip_longest(list1, list2, list3, fillvalue=None):
    print(i, j, k)

输出结果为:

1 a x
2 b None
3 None None

以上就是 Python 中同时迭代多个列表的几种方法。根据实际情况选择合适的方法可以提高程序的可读性和性能。