Python中的zip()函数是一个内置函数,用于将多个序列中的元素打包在一起,返回一个元组构成的列表,其中每个元组包含来自每个序列的元素。它可以接受任意数量的序列,其中最短的序列确定了新列表的长度。在这篇文章中,我们将详细介绍zip函数的用法、语法和示例。
语法
zip()函数的语法如下:zip([iterable, ...])
这里iterable表示要打包的迭代器或可迭代对象。zip()函数返回一个元组的列表,其中每个元组包含来自每个序列的元素。新列表的长度等于最短的序列长度。因此,如果一个序列比其他序列短,那么zip函数会在最短的序列元素用完后停止。
基本用法
让我们从一个简单的示例开始,看看如何使用zip函数来打包两个列表:
fruits = ["apple", "banana", "orange"]
prices = [1.2, 2.3, 3.4]
for fruit, price in zip(fruits, prices):
print(fruit, price)
输出结果如下:
apple 1.2
banana 2.3
orange 3.4
这里,我们使用zip函数将两个列表打包在一起,然后使用for循环遍历打包后的结果。在循环中,我们使用两个变量fruit和price来解压缩每个元组中的值,并将它们打印出来。
解压缩
我们也可以使用zip函数将列表解压缩为单独的列表。例如:
zipped = [("apple", 1.2), ("banana", 2.3), ("orange", 3.4)]
fruits, prices = zip(*zipped)
print(fruits) # ("apple", "banana", "orange")
print(prices) # (1.2, 2.3, 3.4)
这里,我们首先将一个由元组构成的列表zipped打包在一起。然后,我们将其解压缩为两个列表,其中一个列表包含所有水果名称,另一个列表包含所有对应的价格。
需要注意的是,在解压缩列表时,需要在zip函数调用中使用*操作符,它将列表解压为单独的元素。
并行迭代多个列表
可以使用zip函数在并行迭代多个列表时节省代码。例如,假设我们有两个列表,一个包含姓名,另一个包含年龄。我们可以使用zip函数并行迭代这两个列表,并在循环中打印每个人的姓名和年龄。示例代码如下:
names = ['Alice', 'Bob', 'Charlie']
ages = [25, 30, 35]
for name, age in zip(names, ages):
print(f"{name} is {age} years old")
输出结果为:
Alice is 25 years old
Bob is 30 years old
Charlie is 35 years old
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 压缩函数(zip)详解 - Python技术站