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个不同类型的可迭代对象,最小长度为3In [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)]