python中zip函数的使用

zip(*iterables)

zip可以将多个可迭代对象组合成一个迭代器对象,通过迭代取值,可以得到n个长度为m的元组。其中n为长度最短可迭代对象的元素个数,m为可迭代对象的个数。并且每个元组的第i个元素都来自于第i个可迭代对象。

举例:

In [1]: a = zip((1,2,3),[4,5,6,7],"abcd",range(5)) #创建一个zip对象,传入了4个不同类型的可迭代对象,最小长度为3

In [2]: print(a)
<zip object at 0x7f56da58d600>

In [3]: next(a)
Out[3]: (1, 4, 'a', 0)

In [4]: next(a)
Out[4]: (2, 5, 'b', 1)

In [5]: next(a)
Out[5]: (3, 6, 'c', 2)

In [6]: next(a) #通过迭代取值,只能取出3个(长队最短可迭代对象(1,2,3)的元素个数)长度为4(可迭代对象的个数)的元组
---------------------------------------------------------------------------
StopIteration                             Traceback (most recent call last)
<ipython-input-6-15841f3f11d4> in <module>
----> 1 next(a)

StopIteration: 

In [7]: a = zip((1,2,3),[4,5,6,7],"abcd",range(5))

In [8]: list(a) #通过列表的形式,更直观的看到迭代结果是3个长度为4的元组,并且每个元组中的第i个元素都来自于第i个可迭代对象,比如第1个元素都来自于(1,2,3)
Out[8]: [(1, 4, 'a', 0), (2, 5, 'b', 1), (3, 6, 'c', 2)]

 

posted @ 2021-02-01 23:51  eliwang  阅读(1260)  评论(0编辑  收藏  举报