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 23
zip(a, b)的工作原理是建立出乙個迭代器,該迭代器可產生出元組(x, y),這裡的x取自序列a, 而y取自序列b。
當其中某個輸入序列中沒有元素可以繼續迭代時,整個迭代過程結束。因此整個迭代的長度和其中最短的輸入序列長度相同。
例項如下:
a = [1, 2, 3]
b = ['w', 'x', 'y', 'z']
for i in zip(a, b):
print(i)
(1, 'w')
(2, 'x')
(3, 'y')
2、也可以使用itertools.zip_longest(),可以迭代出較長的序列長度
import itertools
for i in itertools.zip_longest(a, b):
print(i)
(1, 'w')
(2, 'x')
(3, 'y')
(none, 'z')
# 通過fillvalue來填充元素
for i in itertools.zip_longest(a, b, fillvalue=0):
print(i)
(1, 'w')
(2, 'x')
(3, 'y')
(0, 'z')
zip()可以接受多餘2個序列作為輸入。在這種情況下,得到的結果中元組裡的元素數量和輸入序列的數量相同。
c = ['m', 'n']
for i in zip(a, b, c):
print(i)
(1, 'w', 'm')
(2, 'x', 'n')
注意:
zip()建立出的結果只是乙個迭代器。如果需要將配對的資料儲存為列表,那麼可以使用list()函式。
print(zip(a, b))
print(list(zip(a, b)))
[(1, 'w'), (2, 'x'), (3, 'y')]
python使用 zip 同時迭代多個序列示例
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 ...
同時迭代多個序列
你想同時迭代多個序列,每次分別從乙個序列中取乙個元素。為了同時迭代多個序列,使用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...
python zip 同時迭代多個序列
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 ...