存储在元组中的元素总数


问题内容

给定一个包含一堆整数元素的元组,一个人怎么能找到所有元素的总和?

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

li = [(1, 2), (1, 3), (2, 3)]

我如何获得这样的东西:

[3, 4, 5]

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


问题答案:

您可以像这样使用mapsum运行

>>> li = [(1, 2), (1, 3), (2, 3)]
>>> map(sum, li)
[3, 4, 5]

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

>>> [sum(tup) for tup in li]
[3, 4, 5]

注意:
我个人更喜欢列表理解版本,因为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]

但是列表理解将在Python 2.x和Python 3.x中给出一个列表。