2012-05-21 66 views
3

我已經有過這個問題多次,我找不到一個好的解決方案來將兩個元組的內容添加在一起。 的東西做:如何添加兩個元組(或列表)的內容?

a = (1, 2) 
b = (3, 4) 
c = (a[0]+b[0], a[1]+b[1]) 

我想我看到了一個語法來做到這一點一次,但我不記得如何做到這一點。

回答

3

這其中也適用:

>>> a = (1,2) 
>>> b = (3,4) 
>>> c = map(sum, zip(a,b)) 
>>> c 
[4, 6] 

應該與任何數量包含任何數量的號碼清單的工作。

+0

1爲使用'sum'和'zip',-1使用'map' = 0 – juliomalegria

+0

@julio。 alegria是的,我知道......但我認爲我會盡可能縮短......可以使用列表理解或帶有生成器表達式的「list」/「tuple」。 (我喜歡你關於我btw:D) – jadkik94

+0

我想知道我將如何減去兩個列表。 –

1

一個內膽:

map(lambda x, y: x+ y, a, b) 

我相信這是最有效的方式。您還可以導入operator.add以避免使用lambda函數。對我而言,我更喜歡清潔的全局命名空間。

0

隨着發電機理解:

a = (1, 2) 
b = (3, 4) 
result = [x + y for x, y in zip(a, b)] 

[4,6]