Python 元组中存储的元素的总和

Python 元组中存储的元素的总和,python,python-2.7,Python,Python 2.7,给定一个包含一组整数元素的元组,如何找到所有元素的和 例如,如果我有一个元组列表: li = [(1, 2), (1, 3), (2, 3)] 我怎样才能得到这样的东西: [3, 4, 5] 其中3、4和5分别是三个元组中每个元组的总和?您可以这样使用和运行 >>> li = [(1, 2), (1, 3), (2, 3)] >>> map(sum, li) [3, 4, 5] >>> [sum(tup) for tup in li]

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

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

li = [(1, 2), (1, 3), (2, 3)]
我怎样才能得到这样的东西:

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

您可以这样使用和运行

>>> li = [(1, 2), (1, 3), (2, 3)]
>>> map(sum, li)
[3, 4, 5]
>>> [sum(tup) for tup in li]
[3, 4, 5]
或者,你也可以像这样使用

>>> li = [(1, 2), (1, 3), (2, 3)]
>>> map(sum, li)
[3, 4, 5]
>>> [sum(tup) for tup in li]
[3, 4, 5]
注意:我个人更喜欢列表理解版本,因为Python 3.x中的函数将返回一个iterable
map
对象,该对象需要显式转换为列表,如下所示
list(map(sum,li))

>li=[(1,2)、(1,3)、(2,3)]
>>>地图(总和,李)
>>>类型(映射(总和,li))
>>>列表(地图(总和,li))
[3, 4, 5]
但是列表理解将给出Python 2.x和Python 3.x中的列表。

您可以使用

初学者:

  • 创建类型为列表的结果变量
  • 通过
    for
    循环迭代给定列表中的每个项目
  • 由于每个项都是元组,所以再次迭代步骤2中的项,并将项的总和设置为0
  • 加和
  • 将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)]
    打印([以li表示的i的总和(i)])
    

    def sumtupleinlist(lst):
    返回值[第一次交易中i的总和(i)]
    li=[(1,2)、(1,3)、(2,3)]
    
    要测试该功能,请运行:

    打印(sumtupleinlist(li))
    
    制作一个包含元组的列表-

    tup = [(1,2),(3,4),(5,6)]
    
    for (a,b) in tup:
        print(a+b)
    
    这会给你-

    3
    7
    11
    

    你将如何处理这个问题?是否有任何代码可以显示您的尝试?这是我在一起使用“map”和“sum”函数时遇到的错误:TypeError:“int”对象不是callable@ManasChaturvedi请编辑您尝试的实际代码,回溯也将有助于调试问题。我尝试了2个熊猫形状(2个项目元组)总之,错误是TypeError:“list”对象是不可调用的,而此代码可能会回答此问题,提供有关如何和/或为什么解决此问题的附加上下文将提高答案的长期价值。
    3
    7
    11