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

Python中的zip函数及使用示例

发布时间:2023-06-15 15:57:06

Python中的zip函数是一个内置的函数,它将一系列可迭代的对象(如列表,元组或字符串)并行迭代,并返回一个由元祖构成的列表(或生成器)。

zip()函数中最常用的用途是将两个或多个序列中元素一一对应,生成一个新的元组序列。zip()函数通过把可迭代对象的元素依次对应打包成一个个元组,然后返回由这些元组构成的列表或者生成器,其中每个元组包含来自每个序列的一个元素。

使用语法:zip(*args)

参数说明:可传入任意数量的可迭代对象,包括序列、列表、字符串、元组、字典等。

下面给出几个zip函数的使用示例:

1. 普通用法

例:

lst1 = [1, 2, 3, 4, 5]
lst2 = [6, 7, 8, 9, 10]
result = zip(lst1, lst2)
print(list(result))

输出结果:

[(1, 6), (2, 7), (3, 8), (4, 9), (5, 10)]

2. 处理字典

例:

dict1 = {'a': 1, 'b': 2, 'c': 3}
dict2 = {'d': 4, 'e': 5, 'f': 6}
result = zip(dict1, dict2)
print(list(result))

输出结果:

[('a', 'd'), ('b', 'e'), ('c', 'f')]

可以看到,zip函数处理字典时,仅对键进行迭代操作。

3. zip函数结合*解压

可以使用zip函数结合*解压符映射输出的元素列表。

例:

lst1 = [1, 2, 3]
lst2 = [4, 5, 6]
lst3 = [7, 8, 9]
zipped = zip(lst1, lst2, lst3)
a, b, c = zip(*zipped)
print(a, b, c)

输出结果:

(1, 2, 3) (4, 5, 6) (7, 8, 9)

4. 遍历时使用zip函数

可以使用zip函数在线性遍历的时候,同时遍历两个数组的元素。

例:

lst1 = [1, 2, 3, 4, 5]
lst2 = [6, 7, 8, 9, 10]
for i, j in zip(lst1, lst2):
    print(i, '+', j, '=', i+j)

输出结果:

1 + 6 = 7
2 + 7 = 9
3 + 8 = 11
4 + 9 = 13
5 + 10 = 15

以上就是zip函数的使用示例,总结一下:zip函数可以将多个可迭代对象打包成一个元祖列表,并且可以实现多种操作,如常规配对打包、映射和排序等应用。对于列表、元组、字典等数据结构的处理操作,zip()函数可以轻松地进行。