总结列表中的元素

时间:2012-07-05 12:57:05

标签: python list sum

这是我的代码,我需要在列表中对未定义数量的元素求和。怎么做?

l = raw_input()
l = l.split(' ')
l.pop(0)

我的输入:3 5 4 9 输入后,我通过l.pop(0)删除第一个元素。 在.split(' ')我的列表为['5', '4', '9']之后,我需要对此列表中的所有元素求和。

在这种情况下,总和为18.请注意,未定义元素数量。

7 个答案:

答案 0 :(得分:138)

您只需使用sum()内置内容对列表中的数字进行求和:

sum(your_list)

它将与您拥有的数量项目相加。例如:

my_list = range(10, 17)
my_list
[10, 11, 12, 13, 14, 15, 16]

sum(my_list)
91

针对您的具体情况

对于您的数据,首先将数字转换为int,然后将数字相加:

data = ['5', '4', '9']

sum(int(i) for i in data)
18

这适用于列表中未定义元素的数量(只要它们是“数字”)

感谢@ senderle的评论转换,以防数据采用字符串格式。

答案 1 :(得分:7)

>>> l = raw_input()
1 2 3 4 5 6 7 8 9 10
>>> l = l.split()
>>> l.pop(0)
'1'
>>> sum(map(int, l)) #or simply sum(int(x) for x in l) , you've to convert the elements to integer first, before applying sum()
54

答案 2 :(得分:5)

Python iterable可以这样求和 - [sum(range(10)[1:])]。这会对列表中除第一个元素之外的所有元素进行求和。

>>> atuple = (1,2,3,4,5)
>>> sum(atuple)
15
>>> alist = [1,2,3,4,5]
>>> sum(alist)
15

答案 3 :(得分:2)

您可以使用sum对列表中的元素求和,但如果您的列表来自raw_input,则可能需要将项目转换为int或{{1}首先:

float

答案 4 :(得分:1)

您可以在map函数中使用sum()函数和pythons。它简化了解决方案。并降低了复杂性     a=map(int,raw_input().split())
    sum(a)
完成!

答案 5 :(得分:0)

def sumoflist(l):    
    total = 0    
    for i in l:
        total +=i
    return total

答案 6 :(得分:0)

您还可以使用reduce方法:

>>> myList = [3, 5, 4, 9]
>>> myTotal = reduce(lambda x,y: x+y, myList)
>>> myTotal
21

此外,您可以修改lambda函数以对列表执行其他操作。