2016-10-06 64 views
0

我有一個返回兩個列表的元組的功能如何循環元素明細的元組列表?

def two_lists(): 
    return [1, 2, 3], ['a', 'b', 'c'] 

我想通過元組循環的方式與此類似

for v1, v2 in two_lists(): 
    print v1, v2 

output: 
    1, a 
    2, b 
    3, c 

我發現的唯一的辦法,我覺得相當麻煩!

a, b = two_lists() 
for i, y in zip(a, b): 
    print i, y 

有沒有更漂亮的pythonic方式來實現這一目標?

+0

如果你想使它變得更加簡潔,你可以在zip(* two_lists())中執行'for i,y',這會將元組解壓縮到原位。否則,如果你想說'zip'是非pythonic,我會不同意。 – user3030010

+0

編輯添加Python 2標籤。 –

+5

請不要使用列表理解他們的副作用。這是非常糟糕的做法,效率低下。這是一個正確的解決方案。 –

回答

7

當然,您可以直接在您的zip文件中打開two_lists()

for i, y in zip(*two_lists()): 
    print i, y 

這是做這件事的慣用方式。