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

Python中zip()函数的基本用法及实际应用举例

发布时间:2023-06-26 23:44:41

zip()函数是Python内置函数之一,常用于将多个可迭代对象打包成一个元组序列,并返回这些元组组成的对象。zip()函数支持任意多个可迭代参数,参数可以是列表、元组、迭代器,还可以是字符串等。

zip()函数的基本语法如下:

zip(iterable1[, iterable2[, iterable3[,... iterableN]]])

参数解释:

- iterable1 ~ iterableN:需要打包的可迭代对象,可以是列表、元组、迭代器、字符串等。

返回值:

- 返回一个由tuple组成的zip对象,其中每个tuple由所有可迭代对象中对应位置的元素组成。

实际应用举例:

1. 求多个列表中对应元素的和

假设我们有三个列表:a = [1, 2, 3], b = [4, 5, 6], c = [7, 8, 9],要求将它们对应位置的元素相加,输出和的列表。

a = [1, 2, 3]
b = [4, 5, 6]
c = [7, 8, 9]

sum_lst = [sum(x) for x in zip(a, b, c)]
print(sum_lst)

输出结果为:

[12, 15, 18]

2. 将多个列表转化为字典

假设我们有两个列表:keys = ['a', 'b', 'c'],values = [1, 2, 3],要将它们转化为字典。

keys = ['a', 'b', 'c']
values = [1, 2, 3]

dict_lst = dict(zip(keys, values))
print(dict_lst)

输出结果为:

{'a': 1, 'b': 2, 'c': 3}

3. 同时遍历多个列表

假设我们有两个列表:a = [1, 2, 3],b = ['a', 'b', 'c'],要同时遍历这两个列表并输出它们的对应元素。

a = [1, 2, 3]
b = ['a', 'b', 'c']

for x, y in zip(a, b):
    print(x, y)

输出结果为:

1 a
2 b
3 c

4. 解压缩列表

假设我们有一个列表lst = [(1, 'a'), (2, 'b'), (3, 'c')],要将它解压缩为两个列表,其中一个包含所有的元素1, 2, 3,另一个包含所有的元素'a', 'b', 'c'。

lst = [(1, 'a'), (2, 'b'), (3, 'c')]

lst1, lst2 = [], []
for x, y in lst:
    lst1.append(x)
    lst2.append(y)
print(lst1, lst2)

输出结果为:

[1, 2, 3] ['a', 'b', 'c']

总结:

zip()函数是Python内置函数之一,它将多个可迭代对象打包成一个元组序列,并返回这些元组组成的对象。在实际应用场景中,zip()函数常用于求多个列表中对应元素的和、将多个列表转化为字典、同时遍历多个列表以及解压缩列表等操作。