累加和列表的简单表达式

时间:2017-10-02 21:56:26

标签: python

我有一个Python数组,我想编写一个表达式,返回一个包含所有先前数字之和的数组。 例如,我们有:

arr1 = [1,2,3,4]

我的功能应该返回:

[1, 3, 6, 10]

我知道可以用简单的循环甚至递归来制作它,但是有可能在一行中制作吗? 类似的东西:

def converter(arr):
    arr1 = [x + y for x,y in arr ]
    return arr1

1 个答案:

答案 0 :(得分:1)

从Python 3.2开始,您可以使用itertools.accumulate

>>> from itertools import accumulate
>>> arr = [1,2,3,4]
>>> list(accumulate(arr))
[1, 3, 6, 10]