目录

描述

语法

参数

返回值

使用示例

注意事项

1. 参数必须是可迭代对象

2. 无参调用zip()函数

3. 迭代多个序列时,当其中一个序列迭代完毕,迭代过程终止


描述

zip函数是Python的内置函数,它用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象(即对多个序列进行并行迭代)。如果各个迭代器元素个数不一致,zip()函数则在最短序列“用完”时就会停止。

语法

zip(*iters)

参数

参数名称说明备注
*iters一个或多个可迭代序列可省略的参数

返回值

zip()函数返回一个zip可迭代序列对象。

使用示例

>>> list_demo = [2, 5, 7]
>>> tuple_demo = ("Beijing", "Xi'an", "HongKang")
>>> for num, city in zip(list_demo, tuple_demo):
...     print(num, city)
...
2 Beijing
5 Xi'an
7 HongKang

注意事项

1. 参数必须是可迭代对象

zip()函数的参数必须是可迭代对象。当参数不为可迭代对象时,代码抛出TypeError异常。

>>> zip(1, 2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: zip argument #1 must support iteration

2. 无参调用zip()函数

zip()函数的参数可省略,此时返回一个没有任何元素的zip对象。

>>> a = zip()
>>> a
<zip object at 0x101430908>
>>> b = list(a)
>>> b
[]

3. 迭代多个序列时,当其中一个序列迭代完毕,迭代过程终止

使用zip()函数迭代多个序列时,且序列的长短不一,若其中一个序列迭代完毕,整个迭代的过程结束。

下面的代码中,list_demo长度长于tuple_demo。使用zip函数迭代时,当tuple_demo的最后一个元素迭代完毕,整个迭代过程结束。无论list_demo后还有多少元素。

>>> list_demo = ["Python", "Java", "C", "C++", "PHP", "JavaScript", "HTML", "CSS"]
>>> tuple_demo = ("Linux", "Unix", "Windows", "OS X", "Android", "ios")
>>>
>>> for language, system in zip(list_demo, tuple_demo):
...     print("%s in %s" % (language, system))
...
Python in Linux
Java in Unix
C in Windows
C++ in OS X
PHP in Android
JavaScript in ios

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐