存储在元组内的元素总和

Man*_*edi 6 python python-2.7

给定一个包含一堆整数元素的元组,如何找到所有元素的总和?

例如,如果我有一个元组列表:

li = [(1, 2), (1, 3), (2, 3)]
Run Code Online (Sandbox Code Playgroud)

我怎么能得到这样的东西:

[3, 4, 5]
Run Code Online (Sandbox Code Playgroud)

其中3,4和5分别是三个元组中每个元组的总和?

the*_*eye 24

你可以像这样使用mapsum运作

>>> li = [(1, 2), (1, 3), (2, 3)]
>>> map(sum, li)
[3, 4, 5]
Run Code Online (Sandbox Code Playgroud)

或者你可以使用列表理解,就像这样

>>> [sum(tup) for tup in li]
[3, 4, 5]
Run Code Online (Sandbox Code Playgroud)

注意:我个人更喜欢list comprehension版本,因为mapPython 3.x中的函数将返回一个可迭代map对象,需要将其显式转换为列表,就像这样list(map(sum, li)).

>>> li = [(1, 2), (1, 3), (2, 3)]
>>> map(sum, li)
<map object at 0x7f3dc25bb0f0>
>>> type(map(sum, li))
<class 'map'>
>>> list(map(sum, li))
[3, 4, 5]
Run Code Online (Sandbox Code Playgroud)

但是list comprehension将在Python 2.x和Python 3.x中给出一个列表.


Avi*_*Raj 5

您可以使用列表理解

>>> li = [(1, 2), (1, 3), (2, 3)]
>>> [x+y for (x,y) in li]
[3, 4, 5]
Run Code Online (Sandbox Code Playgroud)