将整数列表作为参数并返回运行总计列表的函数

时间:2015-10-17 06:27:06

标签: python function python-2.7

我在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] 

2 个答案:

答案 0 :(得分:5)

将运行总和追加到循环中的列表中并返回列表:

>>> 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中带有可迭代的默认操作是&#39;运行总和&#39;。您也可以选择根据需要传递运算符。

答案 1 :(得分:0)

def runningSum(aList):     theSum = 0     累积= []     for a in aList:         theSum = theSum + i         cumulative.append(theSum的)     返回累积