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

Python中的zip()函数

发布时间:2023-05-27 09:13:17

Python中的zip()函数可以将多个列表、元组、集合等对象合并成一个元组,每个元组由对应位置的元素组成。

zip()函数的语法如下:

zip(*iterables)

其中,*iterables表示多个可迭代对象,这些对象会被并行迭代。

zip()函数会返回一个迭代器对象,可以通过list()函数将其转化为列表。

下面是一个简单的例子:

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

print(type(c))           # <class 'zip'>
print(list(c))           # [(1, 'a'), (2, 'b'), (3, 'c')]

在这个例子中,zip()函数将两个列表并行迭代,将对应位置的元素合成为一个元组,然后组成一个迭代器对象,最后通过list()函数将其转化为列表。

需要注意的是,如果被迭代的对象长度不一致,则zip()函数会以最短长度为准进行迭代。例如:

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

print(list(c))           # [(1, 'a'), (2, 'b')]

在这个例子中,b列表只有两个元素,所以最终结果只有两个元组。

此外,*号的作用是将多个参数打包成元组,使其可以作为zip()函数的多个参数传入。例如:

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

print(list(zip(a, b, c)))     # [(1, 'a', True), (2, 'b', False), (3, 'c', True)]

在这个例子中,zip()函数接收三个参数,并行迭代三个列表,将对应位置的元素合成为一个元组。最终结果包含三个元素,每个元素由三个值组成。

总之,zip()函数是Python中一个非常有用的函数,可以方便地将多个可迭代对象合成一个元组,进行并行处理。需要注意的是,它只返回一个迭代器对象,需要通过list()函数将其转化为列表。