元组中存储的元素的总和

2024-04-25 22:24:41 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

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

[3, 4, 5]

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


Tags: 元素列表整数li元组总和
3条回答

初学者:

  1. 创建类型为list的结果变量。
  2. 通过for循环遍历给定列表中的每个项。
  3. 由于每个项都是元组,因此再次迭代步骤2中的项,并将项的和设置为0。
  4. 加和。
  5. 将sum追加到结果变量。

演示:

>>> li = [(1, 2), (1, 3), (2, 3)]   # Given Input
>>> result = []                     # Step 1
>>> for i in li:                    # Step 2
...     tmp_sum = 0                 # Step 3  
...     for j in i:                 # Step 3
...         tmp_sum += j            # Step 4 
...     result.append(tmp_sum)      # Step 5 
... 
>>> print result
[3, 4, 5]

您可以像这样使用^{}^{}函数

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

或者可以使用list comprehension,如下所示

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

注意:我个人更喜欢列表理解版本,因为Python 3.x中的^{}函数将返回一个iterablemap对象,该对象需要显式转换为列表,如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]

但是列表理解将给出Python2.x和Python3.x中的列表

你可以用list comprehension

>>> li = [(1, 2), (1, 3), (2, 3)]
>>> [x+y for (x,y) in li]
[3, 4, 5]

相关问题 更多 >