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

Python中的zip()函数用法及示例

发布时间:2023-05-28 19:02:43

zip()函数是Python内置的一个函数,它可以将多个可迭代对象打包成为一个元组的列表,返回值是一个zip对象,如果需要可转换为列表或者字典。

zip()函数的语法格式为:

zip([iterable, ...])

这里的 iterable 参数可以是一个或多个迭代器,也可以是可迭代对象,可以是列表、元组、序列、集合、字典、字符串等,只要是可迭代的都可以。

在此基础上,zip()函数可以实现很多功能。

1.将两个列表合并成字典

字典是由键值对组成的,可以通过zip()函数可以将两个列表合并成字典。其中,zip()函数接收两个参数作为输入,分别是键列表和值列表,然后使用dict()构造字典即可。示例代码如下:

keys = ['a', 'b', 'c']
values = [1, 2, 3]
dic = dict(zip(keys, values))
print(dic)  # {'a': 1, 'b': 2, 'c': 3}

2.合并多个列表

如果有多个列表需要合并,可以使用zip()函数将这些列表打包成元组的列表,然后再使用列表推导式将这些元组的值相加或相乘,组成新的列表。示例代码如下:

a = [1, 2, 3]
b = [4, 5, 6]
c = [7, 8, 9]
sums = [sum(i) for i in zip(a, b, c)]
print(sums)  # [12, 15, 18]

multiplies = [i*j for i, j in zip(a, b)]
print(multiplies)  # [4, 10, 18]

3.对两个列表进行交叉合并

使用zip()函数可以将两个列表进行交叉合并,将两个列表中的元素一一对应。示例代码如下:

a = [1, 2, 3]
b = [4, 5, 6]
c = [7, 8, 9]
result = list(zip(a,b,c))
print(result)   # [(1,4,7), (2,5,8), (3, 6, 9)]

4.将字典的键与值交换

字典的键和值可以通过zip()函数进行交换,首先使用.items()方法将字典转化为可迭代的键值对,然后使用zip()函数交换后再使用dict()构造字典。示例代码如下:

dic = {'a':'aaa', 'b':'bbb', 'c':'ccc'}
new_dic = dict(zip(dic.values(),dic.keys()))
print(new_dic)  # {'aaa': 'a', 'bbb': 'b', 'ccc': 'c'}

总之,zip()函数在Python中作用很大,我们可以根据需要进行灵活的应用。