2016-05-01 55 views
5

我想知道是否有一種簡單的方法在Python 3.x中執行以下操作。說我有兩個表結構如下:帶扁平列表的元組的列表的列表

list_a = [(1,2), (1,2), (1,2), ...] 
list_b = [3, 3, 3, ...] 

什麼是生產發電機,它可以讓我通過這兩個列表循環,像這樣(在這裏通過調用一個函數funky_zip表示)最簡單的方法:

>>> for a, b, c, in funky_zip(list_a, list_b): 
>>>  print(a, b, c) 
... 
1 2 3 
1 2 3 
1 2 3 
# and so on 

我只是做

for aa, b in zip(list_a, list_b): 
    print(aa[0], aa[1], b) 

但我想知道如果有一個很好的辦法做到這一點,而無需解壓的元組。謝謝!

回答

7

你只需要括號:

list_a = [(1,2), (1,2), (1,2)] 
list_b = [3, 3, 3] 
for (a, b), c in zip(list_a, list_b): 
    print(a, b, c) 

結果:

1 2 3 
1 2 3 
1 2 3 
+0

OMG哈哈。不知道Python可以做到這一點!謝謝 –

+0

@ C.Windolf請注意,這也適用於Pyton 2.7。 –