1. 程式人生 > >使用zip同時遍歷多個迭代物件

使用zip同時遍歷多個迭代物件

zip(iterable1, iterable2,…)

功能描述

zip() 函式用於將可迭代的物件作為引數,將物件中對應的元素打包成一個個元組,然後返回由這些元組組成的物件,這樣做的好處是節約了不少的記憶體。
我們可以使用 list() 轉換來輸出列表。
zip()引數可以接受任何型別的序列,同時也可以有兩個以上的引數;當傳入引數的長度不同時,zip能自動以最短序列長度為準進行擷取,獲得元組。
例子來自runoob

>>>a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b)     # 返回一個物件
>>> zipped
<zip object at 0x103abc288>
>>> list(zipped)  # list() 轉換為列表
[(1, 4), (2, 5), (3, 6)]
>>> list(zip(a,c))              # 元素個數與最短的列表一致
[(1, 4), (2, 5), (3, 6)]
 
>>> a1, a2 = zip(*zip(a,b))          # 與 zip 相反,zip(*) 可理解為解壓,返回二維矩陣式
>>> list(a1)
[1, 2, 3]
>>> list(a2)
[4, 5, 6]
>>>


l1 = [2,3,4]
l2 = [4,5,6] 
for (x,y) in zip(l1,l2):
    print(x,y,'--',x*y)
 
2 4 -- 8
3 5 -- 15
4 6 -- 24