Python中zip函数有哪些用途?
发布时间:2023-06-14 05:26:49
zip函数是Python中内置的一个函数,主要用于将多个可迭代对象打包成一个元组列表。zip函数的可迭代对象可以是列表、元组、迭代器或其他可迭代对象。zip函数返回的是一个可迭代的zip对象,可以通过list()函数将zip对象转换为列表。zip函数的功能非常强大,具体用途如下:
1. 合并两个列表、元组或其他可迭代对象
a = [1, 2, 3] b = [4, 5, 6] c = zip(a, b) list(c) # [(1, 4), (2, 5), (3, 6)]
2. 遍历多个相同长度的列表
scores = [90, 92, 85]
names = ['Alice', 'Bob', 'Charlie']
for score, name in zip(scores, names):
print(name, score)
3. 将字典的key和value互换
d = {'a': 1, 'b': 2, 'c': 3}
new_d = dict(zip(d.values(), d.keys()))
print(new_d) # {1: 'a', 2: 'b', 3: 'c'}
4. 解压缩列表成多个变量
a = [1, 2, 3] b = [4, 5, 6] c = [7, 8, 9] x, y, z = zip(a, b, c) print(x) # (1, 4, 7) print(y) # (2, 5, 8) print(z) # (3, 6, 9)
5. 计算多个列表的元素和
a = [1, 2, 3] b = [4, 5, 6] c = [7, 8, 9] result = [sum(x) for x in zip(a, b, c)] print(result) # [12, 15, 18]
6. 生成字典
keys = ['a', 'b', 'c']
values = [1, 2, 3]
d = dict(zip(keys, values))
print(d) # {'a': 1, 'b': 2, 'c': 3}
7. 矩阵转置
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
result = [list(x) for x in zip(*matrix)]
print(result)
# [[1, 4, 7],
# [2, 5, 8],
# [3, 6, 9]]
8. 批量更新字典的值
d = {'a': 1, 'b': 2, 'c': 3}
new_values = [4, 5, 6]
for key, new_value in zip(d.keys(), new_values):
d[key] = new_value
print(d) # {'a': 4, 'b': 5, 'c': 6}
总之,zip函数可以让我们更快捷、方便地进行一些常见的数据处理操作。
