2013-04-28 2 views
6

Как добавить кортежи из двух списков кортежей, чтобы получить новый список результатов?Как + значения в двух списках кортежей

Например:

a = [(1,1),(2,2),(3,3)] 
b = [(1,1),(2,2),(3,3)] 

Мы хотим получить

c = [(2,2),(4,4),(6,6)] 

Я искал Google и нашел много результатов, как просто добавить два списка вместе, используя почтовый индекс, но не смогли найти ничего о двух списках кортежей.

ответ

6

использование zip дважды и список понимание:

In [63]: a = [(1,1),(2,2),(3,3)] 

In [64]: b = [(1,1),(2,2),(3,3)] 

In [66]: [tuple(map(sum, zip(x, y))) for x, y in zip(a, b)] 
Out[66]: [(2, 2), (4, 4), (6, 6)] 
+4

Это хороший способ решения проблемы, если вы не знаете, сколько элементов в каждом кортеже раньше времени. +1 –

5
>>> a = [(1,1),(2,2),(3,3)] 
>>> b = [(1,1),(2,2),(3,3)] 
>>> [(i[0]+j[0], i[1]+j[1]) for i, j in zip(a,b)] 
[(2, 2), (4, 4), (6, 6)] 
Смежные вопросы