一个函数,它将一个整数列表作为参数并返回一个运行总计的列表
问题描述:
我在python中有这个函数,并且这个函数计算列表中整数的总和。一个函数,它将一个整数列表作为参数并返回一个运行总计的列表
def runningSum(aList):
theSum = 0
for i in aList:
theSum = theSum + i
return theSum
结果:
>>runningSum([1,2,3,4,5]) = 15
就是我希望从这个功能的实现是返回运行总计列表。 是这样的:
E.g.: [1,2,3,4,5] -> [1,3,6,10,15]
E.g.: [2,2,2,2,2,2,2] -> [2,4,6,8,10,12,14]
答
追加运行总和到列表中的一个循环,并返回名单:
>>> def running_sum(iterable):
... s = 0
... result = []
... for value in iterable:
... s += value
... result.append(s)
... return result
...
>>> running_sum([1,2,3,4,5])
[1, 3, 6, 10, 15]
或者,使用yield
statement:
>>> def running_sum(iterable):
... s = 0
... for value in iterable:
... s += value
... yield s
...
>>> running_sum([1,2,3,4,5])
<generator object runningSum at 0x0000000002BDF798>
>>> list(running_sum([1,2,3,4,5])) # Turn the generator into a list
[1, 3, 6, 10, 15]
如果你使用Python 3.2+,你可以使用itertools.accumulate
。
>>> import itertools
>>> list(itertools.accumulate([1,2,3,4,5]))
[1, 3, 6, 10, 15]
其中accumulate
与可迭代的默认操作是'运行总和'。或者,您也可以根据需要传递操作员。
答
DEF运行总和(ALIST): theSum的= 0 累积= [] 对于i在ALIST: theSum的= theSum的+ I cumulative.append(theSum的) 返回累积
+0
该问题已经有一个可接受的答案,您的答案不提供任何新信息 – Guenther
这是完美!谢谢。 – arsalunic612