zip()函数,其实看help(zip)即可

| Return a zip object whose .__next__() method returns a tuple where
| the i-th element comes from the i-th iterable argument. The .__next__()
| method continues until the shortest iterable in the argument sequence
| is exhausted and then it raises StopIteration.

返回一个zip对象,其.__ next __()方法返回一个元组,其中第 i 个元素分别来自各可迭代对象的第 i 个参数。.__ next __()方法一直持续到参数序列中最短的iterable(可迭代对象)耗尽,然后它抛出StopIteration

翻译成正经话就是:
zip()函数将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

注:zip方法在Python2Python3中的不同:在Python 3.x中为了减少内存,zip()返回的是一个对象。如需转换为列表,需使用内置函数list()转换。

这里简单列一下zip()函数的例子:

>>> dict([(1, 4), (2, 5), (3, 6)])
{1: 4, 2: 5, 3: 6}
>>> a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zip(a,b)
<zip object at 0x7f6bd7e7b648>
>>> for i in zip(a,b):
    print(i)

(1, 4)
(2, 5)
(3, 6)
>>> list(zip(a,c))    # 打包为元组的列表,元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]
>>> dict(zip(a, c))   # 也可以转换为字典
{1: 4, 2: 5, 3: 6}

王尼玛
373 声望13 粉丝

此号作废!