python zip 同時迭代多個序列

2021-08-10 15:23:45 字數 1032 閱讀 4239

zip 可以平行地遍歷多個迭代器

python 3中zip相當於生成器,遍歷過程中產生元祖,python2會把元祖生成好,一次性返回整份列表

zip(x,y,z)會生成乙個可返回元組 (x,y,z) 的迭代器

x = [1, 2, 3, 4, 5]

y = ['a', 'b', 'c', 'd', 'e']

z = ['a1', 'b2', 'c3', 'd4', 'e5']

>>> for i in zip(x,y,z):

... print(i)

...

(1, 'a', 'a1')

(2, 'b', 'b2')

(3, 'c', 'c3')

(4, 'd', 'd4')

(5, 'e', 'e5')

遍歷長度不一樣(只要耗盡乙個就會結束,若想遍歷不等長請使用itertools的zip_longest)

x = [1, 2, 3, 4, 5, 6]

y = ['a', 'b', 'c', 'd', 'e']

>>> for i in zip(x,y):

... print(i)

...

(1, 'a')

(2, 'b')

(3, 'c')

(4, 'd')

(5, 'e')

from itertools import zip_longest

x = [1, 2, 3, 4, 5, 6]

y = ['a', 'b', 'c', 'd', 'e']

>>> for i in zip_longest(x,y):

... print(i)

...

(1, 'a')

(2, 'b')

(3, 'c')

(4, 'd')

(5, 'e')

(6, none)

同時迭代多個序列

你想同時迭代多個序列,每次分別從乙個序列中取乙個元素。為了同時迭代多個序列,使用zip 函式。比如 xpts 1,5,4,2,10,7 ypts 101,78,37,15,62,99 for x,y in zip xpts,ypts print x,y 1 1015784 3721510627 99...

zip 同時迭代多個序列

1 可以使用zip 函式來同時迭代多個序列 xpts 1,5,4,2,8,10 ypts 100,121,78,37,23 for x,y in zip xpts,ypts print x,y 1 100 5 121 4 78 2 37 8 23zip a,b 的工作原理是建立出乙個迭代器,該迭代器...

python zip 並行迭代

在使用迭代時,有乙個非常方便的技巧 通過 zip 函式對多個序列進行並行迭代 days monday tuesday wednesday fruits banana orange peach drinks coffee tea beer desserts tiramisu ice cream pie...