2016-05-01 54 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。 –