2013-04-28 4 views
6

Come posso aggiungere le tuple da due liste di tuple per ottenere un nuovo elenco di risultati?Come + i valori in due liste di tuple

Ad esempio:

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

Vogliamo ottenere

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

Ho cercato google e ho trovato molti risultati come aggiungere semplicemente due liste insieme utilizzando zip, ma non ho trovato nulla su due liste di tuple.

risposta

6

uso zip due volte e una lista di comprensione:

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

Questo è un bel modo di risolvere il problema se non si sa quanti elementi sono in ogni tupla prima del tempo. +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)]