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)]