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()函数将其转化为列表。
