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

Python函数zip()的简单使用说明

发布时间:2023-06-23 18:26:09

Python中内置的函数zip()是一个非常常用且强大的函数,它可以将多个可迭代对象中对应位置的元素打包成为一个个元组,然后返回一个zip对象,可以用list()将其转化为列表。

zip()函数的语法如下:

zip(*iterables)

其中,*iterables表示可迭代对象,可以传入两个及以上的参数。

在对zip()函数进行解释之前,我们先看一下它的返回结果:

1.当传入的可迭代对象中元素的个数不同时,zip()函数会以最短的对象长度为准,若最短对象中没有元素,zip()将不会返回任何内容。

2.当传入的可迭代对象中元素的个数相同时,zip()返回的是由元组构成的zip对象。

下面我们通过以下三个示例来说明zip()函数的用法:

### 示例一:使用zip()将两个列表打包成为一个元组的列表

list1 = [1, 2, 3, 4, 5]
list2 = ['a', 'b', 'c', 'd', 'e']
result = zip(list1, list2)

print(list(result))

上面代码输出的结果是:

[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e')]

在示例一中,我们传入了两个列表list1和list2给zip()函数,函数返回的是一个由元组构成的zip对象,我们通过list()函数将其转化为列表并输出。运行结果可以看出,zip()函数将两个列表中对应位置的元素打包成为了一个个元组,然后将这些元组组成了一个列表。

### 示例二:使用zip()打包多个列表

list1 = [1, 2, 3, 4, 5]
list2 = ['a', 'b', 'c', 'd', 'e']
list3 = ['A', 'B', 'C', 'D', 'E']
result = zip(list1, list2, list3)

print(list(result))

上面代码输出的结果是:

[(1, 'a', 'A'), (2, 'b', 'B'), (3, 'c', 'C'), (4, 'd', 'D'), (5, 'e', 'E')]

在示例二中,我们传入了三个列表,然后通过zip()函数将它们打包成为了一个元组的列表。此时返回的列表长度和最短列表的长度相同。

### 示例三:使用zip()和*运算符解压元组列表

result = [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e')]
list1, list2 = zip(*result)

print(list1)
print(list2)

上面代码输出的结果是:

(1, 2, 3, 4, 5)
('a', 'b', 'c', 'd', 'e')

在示例三中,我们传入了一个由元组构成的列表result,并通过*运算符将它解压成为两个元组list1和list2。这里需要注意的是,我们在解压时需要在zip()函数的外部加上一个*运算符,这是因为python中*运算符用于解包,将元组或列表解压为位置参数,而zip()函数的参数需要传入多个可迭代对象,因此需要在外部加上*运算符。

总结:

zip()函数是一个非常实用的函数,可以将多个可迭代对象中对应位置的元素打包成为一个个元组,然后返回一个zip对象。通过使用zip()函数,我们可以方便地对多个列表进行处理,提高编程效率,避免了手动遍历的时间浪费。同时,在多数情况下,我们可以通过zip()函数的返回对象进行解压,将一个元组列表拆解成为多个可变对象,进一步简化了处理流程。