软硬件环境
- windows 10 64bit
- anaconda3 with python 3.7
视频看这里
此处是youtube
的播放链接,需要科学上网。喜欢我的视频,请记得订阅我的频道,打开旁边的小铃铛,点赞并分享,感谢您的支持。
简介
zip()
是python
中的一个内置函数,它接受一系列可迭代对象作为参数,将不同对象中相对应的元素(根据索引)打包成一个元组tuple
,返回一个zip
对象,可以通过list
将zip
对象转化为list
对象。我们来看看zip
的函数定义
zip(*iterables) --> zip object
|
| 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函数使用示例
最后来看看几个示例
In [1]: aList = [1, 2, 3, 4, 5]
In [2]: bList = [5, 4, 3, 2, 1]
In [3]: a = zip(aList)
In [4]: type(a)
Out[4]: zip
In [5]: list(a)
Out[5]: [(1,), (2,), (3,), (4,), (5,)]
In [6]:
可以看到a
的数据类型是zip
,然后通过list
转化,就可以看到以元组为元素的列表了。上例中zip
函数只有一个参数,所以元组中也只有一个元素
In [7]: bList = [5, 4, 3, 2, 1]
In [8]: b = zip(aList, bList)
In [9]: list(b)
Out[9]: [(1, 5), (2, 4), (3, 3), (4, 2), (5, 1)]
In [10]:
当我们给zip
传入2个可迭代参数时,元组中的元素就有2个了
In [16]: cList = [8, 8, 8]
In [17]: aList = [1, 2, 3, 4, 5]
In [18]: c = zip(aList, cList)
In [19]: list(c)
Out[19]: [(1, 8), (2, 8), (3, 8)]
In [20]:
上面中的cList
只有3个元素,而aList
有5个元素,因此,zip
对象中的元组个数跟cList
的元素个数一样,都是3个