2016-01-17 97 views
0

我認爲這可能很容易做到,但我不知道我能做什麼。 假設我們有多個陣列:檢索python中多個數組的每個元素

x = [1, 2, 3, 4, 5] 
y = [1, 3, 5, 7 ,9] 
z = [1, 5, 10, 15, 20] 

那麼,怎樣才能得到使用for循環的每個陣列中的每個元素?我試圖做的是類似於以下內容:

for (x1, x2, x3) in (x, y, z): 
    print (x1, x2, x3) 

當然,上述代碼塊不起作用。有誰能告訴我我該如何做到這一點?

+0

是他們總是相同的長度? –

回答

1

假設xyz總是相同的長度,你可以使用內置的zip()功能:

x = [1, 2, 3, 4, 5] 
y = [1, 3, 5, 7 ,9] 
z = [1, 5, 10, 15, 20] 

for (x1, x2, x3) in zip(x, y, z): 
    print(x1, x2, x3) 

輸出

(1, 1, 1) 
(2, 3, 5) 
(3, 5, 10) 
(4, 7, 15) 
(5, 9, 20) 

如果xyz是不會有相同的長度,那麼zip()將返回一個長度縮減爲min(len(x), len(y), len(z))的元組列表。

0

可以使用zip函數創建的元組的列表:

>>> zip(x,y,z) 
[(1, 1, 1), (2, 3, 5), (3, 5, 10), (4, 7, 15), (5, 9, 20)] 

郵編由此產生 - 對給定的名單 - 元組,使得元組牛逼由出的列表元件X ÿž

接下來,您可以遍歷這些元組:

for (x1, x2, x3) in zip(x, y, z): 
    print (x1, x2, x3) 
相關問題