2013-04-28 30 views
6

Jak dodać krotki z dwóch list krotek, aby uzyskać nową listę wyników?Jak + wartości na dwóch listach krotek

Na przykład:

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

Chcemy dostać

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

Przeszukałem google i znaleźć wiele wyników, jak po prostu dodać dwie listy ze sobą za pomocą zip, ale nie mógł znaleźć coś o dwóch list krotek.

Odpowiedz

6

użycie zip dwukrotnie i lista zrozumieniem:

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

Jest to dobry sposób na rozwiązanie tego problemu, jeśli nie wiem, ile elementy są w każdej krotki z wyprzedzeniem. +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)] 
Powiązane problemy