Python中的 `zip()` 函数 - 使用和例子
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() 函数输出它们。输出结果是一个包含三个整数的列表。
