2016-05-01 14 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でも動作します。 –

関連する問題