Python中的zip函数:用于将多个序列按位打包并返回一个包含元组的新序列。
发布时间:2023-05-28 17:19:20
Python语言中有很多很方便的函数。
其中,zip函数就是一个很常用的函数。 它非常简单,但却非常有用。
zip函数的功能是将多个序列按位打包并返回一个包含元组的新序列。
我们来看一下具体的用法:
1. 使用zip函数
使用zip函数,我们只需要将要打包的序列传入函数中,即可得到一个包含元组的新序列。
例如:
a = [1, 2, 3] b = ['a', 'b', 'c'] c = zip(a, b) print(list(c))
输出结果为:
[(1, 'a'), (2, 'b'), (3, 'c')]
只需要将要打包的序列传入zip函数中,就可以得到一个包含元组的新序列。 我们可以通过print函数来输出这个序列,得到一组由元组组成的列表。
2. 使用zip函数进行解压缩
除了将多个序列打包外,zip函数还可以用于解压缩。
例如:
a, b = zip(*[(1, 'a'), (2, 'b'), (3, 'c')]) print(a) print(b)
输出结果为:
(1, 2, 3)
('a', 'b', 'c')
首先,我们需要使用*将元组转换为参数的形式,然后将其传入zip函数中。
然后,我们定义两个变量a和b,通过zip函数返回的元组进行解压缩,并将其赋值给了这两个变量。
最终,我们可以得到将原来的元组分别解压缩成为了两个变量a和b。
3. 实际应用
zip函数的应用非常广泛。在实际的开发中,我们经常会用到它。以下是一些实际应用情况。
情况1:
做一个列表的索引号/字典的键名,需要知道序列中每个元素对应的位置
lst = ["apple", "banana", "orange", "peach"] dic = dict(zip(lst, range(len(lst)))) print(dic)
输出:
{'apple': 0, 'banana': 1, 'orange': 2, 'peach': 3}
情况2:
有两个列表,需要得到两个列表的每个元素相乘后的结果
lst1 = [1, 2, 3, 4, 5]
lst2 = [10, 9, 8, 7, 6]
lst = []
for i, j in zip(lst1, lst2):
lst.append(i * j)
print(lst)
输出:
[10, 18, 24, 28, 30]
情况3:
计算两个列表中元素的平均数 - 进行多个列表的聚合处理(一行代码实现)
lst1 = [1, 2, 3, 4, 5] lst2 = [10, 9, 8, 7, 6] lst3 = [100, 90, 80, 70, 60] lst = list(map(lambda x: sum(x)/len(x), zip(lst1, lst2, lst3))) print(lst)
输出:
[37.0, 33.666666666666664, 30.333333333333332, 27.0, 23.666666666666668]
总结:
zip函数的应用非常广泛,它可以对多个序列进行打包和解压缩,处理多个列表时可以大显身手。我们在开发中经常会用到它,这里只是举了一些简单的应用场景,有了这个函数作为基础,我们可以做出更多更实用的应用。
