欢迎访问宙启技术站
智能推送

Python中的 `zip()` 函数 - 使用和例子

发布时间:2023-05-31 18:27:27

Python中的 zip() 函数是一个非常有用的函数,用于将多个迭代器(通常是列表或元组)打包成一个单独的迭代器。这个迭代器生成元组,每个元组包含来自每个迭代器的元素。这意味着,如果我们有两个列表,我们可以使用zip() 函数将它们打包成一个元组迭代器,然后使用 for 循环逐个处理元组。

语法:

zip(iter1 [,iter2 [...]])

参数:

- iter1 --- 迭代器。

- iter2 --- 迭代器。

返回值:

返回元组列表。

下面是语法说明:

>>>zip(*iterables)

如果有多个参数,则返回一个元组,其中每个元素都是输入参数的顺序打包的元素。

有许多情况下可能需要使用 zip() 函数。例如,如果您需要同时迭代两个列表,并进行相应的操作,那么使用zip() 函数就会变得非常方便。我们将在下面的例子中更详细地了解如何使用 zip() 函数。

示例:

>>>a = [1, 2, 3]
>>>b = [4, 5, 6]
>>>c = [7, 8, 9]
>>>result = zip(a, b, c)
>>>print(list(result))
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

在这个例子中,我们有三个列表 a, b 和 c。我们使用 zip(a, b, c) 将它们打包成一组元组,每个元组包含来自 a,b 和 c 的相应元素。然后我们使用 list() 函数将返回值转换为列表,并使用 print() 函数来输出结果。输出结果是一个包含三个元组的列表,每个元组包含来自 a,b 和 c 的相应元素。

示例2:

>>>a = [1, 2, 3]
>>>b = [4, 5, 6]
>>>c = [7, 8, 9]
>>>result = zip(a, b, c)
>>>for x, y, z in result:
...   print(x, y, z)
...
1 4 7
2 5 8
3 6 9

在这个例子中,我们使用 zip(a, b, c) 将三个列表打包成一组元组,然后使用 for 循环逐个处理元组。我们将每个元组的 个、第二个和第三个元素分配给变量 x,y 和 z,并使用 print() 函数输出它们。输出结果是每个元组的三个元素。

我们还可以将 zip() 函数与其他函数结合使用,以实现更强大的功能。例如,我们可以使用 zip() 函数和 map() 函数将两个列表中的每个项目相加,并返回结果列表,如下所示。

示例3:

>>>a = [1, 2, 3]
>>>b = [4, 5, 6]
>>>result = map(lambda x, y: x + y, zip(a, b))
>>>print(list(result))
[5, 7, 9]

在这个例子中,我们使用 zip(a, b) 将两个列表打包成一组元组。然后,我们使用 map() 函数和一个 lambda 表达式将每个元组中的元素相加。最后,我们使用 list() 函数将结果转换为列表,并使用 print() 函数输出它们。输出结果是一个包含三个整数的列表。