这是我的代码,我需要对列表中未定义数量的元素求和。这该怎么做?
l = raw_input()
l = l.split(' ')
l.pop(0)
我的输入:3 5 4 9
输入后,我通过删除第一个元素l.pop(0)。在.split(' ')列表之后['5', '4', '9'],我需要对列表中的所有元素求和。
在这种情况下,总和为18。请注意,未定义元素数。
这是我的代码,我需要对列表中未定义数量的元素求和。这该怎么做?
l = raw_input()
l = l.split(' ')
l.pop(0)
我的输入:3 5 4 9
输入后,我通过删除第一个元素l.pop(0)。在.split(' ')列表之后['5', '4', '9'],我需要对列表中的所有元素求和。
在这种情况下,总和为18。请注意,未定义元素数。
Answers:
>>> 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可以像这样总结[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函数以执行列表上的其他操作。
reduce函数已在python3上删除到名为的基本模块functools。src:docs.python.org/3/library/functools.html#functools.reduce
您可以使用mapfunction和pythons内置sum()函数。它简化了解决方案。并降低了复杂性。
a=map(int,raw_input().split())
sum(a)
做完了!