[英]Summing elements in a list
这是我的代码,我需要对列表中未定义数量的元素求和。 这个怎么做?
l = raw_input()
l = l.split(' ')
l.pop(0)
我的输入: 3 5 4 9
输入后,我通过l.pop(0)
删除第一个元素。 在.split(' ')
我的列表是['5', '4', '9']
,我需要对这个列表中的所有元素求和。
在这种情况下,总和为 18。请注意,未定义元素的数量。
您可以简单地使用内置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 的评论重新转换,以防数据为字符串格式。
>>> 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
Python iterable 可以像这样求和 - [sum(range(10)[1:])]
。 这将列表中除第一个元素之外的所有元素相加。
>>> atuple = (1,2,3,4,5)
>>> sum(atuple)
15
>>> alist = [1,2,3,4,5]
>>> sum(alist)
15
您还可以使用 reduce 方法:
>>> myList = [3, 5, 4, 9]
>>> myTotal = reduce(lambda x,y: x+y, myList)
>>> myTotal
21
此外,您可以修改 lambda 函数以在列表中执行其他操作。
您可以使用sum
对列表的元素求和,但是如果您的列表来自raw_input
,您可能希望先将项目转换为int
或float
:
l = raw_input().split(' ')
sum(map(int, l))
您可以使用map
函数和 python 内置的sum()
函数。 它简化了解决方案。 并降低了复杂性。
a=map(int,raw_input().split())
sum(a)
完毕!
def sumoflist(l):
total = 0
for i in l:
total +=i
return total
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.