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

Python中的zip函数的作用是什么?如何使用?

发布时间:2023-06-22 20:59:34

Python中的zip函数用于将多个可迭代对象在元素上进行压缩,返回一个元组组成的列表。每个元组包含来自每个迭代器的下一个元素。

zip()函数的语法格式如下:

zip(iter1, iter2, …)

其中,iter1、iter2、……是多个迭代器。

使用zip()函数时,迭代器的长度应该相同,否则结果将会是最短迭代器的长度。这意味着在组合两个或更多序列时,zip()函数将终止于最短的序列结尾处。

zip函数的返回值是一个zip对象,可以使用list()函数将其转化为列表,或者使用for循环进行遍历。

下面是zip函数的基本用法:

示例1:将两个列表进行压缩

a = [1, 2, 3]
b = ['one', 'two', 'three']
result = zip(a, b) # 使用zip()函数将两个列表压缩
print(list(result)) # 转化为列表并输出

输出结果:

[(1, 'one'), (2, 'two'), (3, 'three')]

示例2:使用for循环遍历

a = [1, 2, 3]
b = ['one', 'two', 'three']
result = zip(a, b) # 使用zip()函数将两个列表压缩
for i in result:
    print(i) # 输出每个元组

输出结果:

(1, 'one')
(2, 'two')
(3, 'three')

示例3:压缩三个列表

a = [1, 2, 3]
b = ['one', 'two', 'three']
c = ['first', 'second', 'third']
result = zip(a, b, c) # 使用zip()函数将三个列表压缩
print(list(result)) # 转化为列表并输出

输出结果:

[(1, 'one', 'first'), (2, 'two', 'second'), (3, 'three', 'third')]

zip()函数还可以被用于解压缩,这个过程与压缩相反。解压缩使用 * 操作符。例如:

示例4:解压缩

zipped = [(1, 'one'), (2, 'two'), (3, 'three')]
num, en = zip(*zipped) # 解压缩
print(num) # 输出解压缩后的数字列表
print(en) # 输出解压缩后的英文列表

输出结果:

(1, 2, 3)
('one', 'two', 'three')

总之,zip()函数是Python内置函数之一,用于压缩多个可迭代对象,并返回一个元组组成的列表。zip()函数可以用于压缩、合并和解压缩列表,这是Python程序员在日常工作中常用的基本方法之一。