给定一个包含一堆整数元素的元组,如何找到所有元素的总和?
例如,如果我有一个元组列表:
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
>>> 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中给出一个列表.
您可以使用列表理解。
>>> li = [(1, 2), (1, 3), (2, 3)]
>>> [x+y for (x,y) in li]
[3, 4, 5]
Run Code Online (Sandbox Code Playgroud)