1
我想在python中使用reduce函数编写一个累积和的版本。这是我到目前为止的代码:蟒蛇cumsum与减少功能
from functools import reduce
def my_cum_sum(arg):
return reduce(lambda a, x: (a.append(a[-1] + x)) if len(a) > 0 else a.append(x), arg, [])
assert(my_cum_sum([1, 1, 1, 1]) == [1, 2, 3, 4]))
但问题是,在我的lambda函数,蟒蛇不知道,(我的蓄能器参数)是一个列表对象,我想我的降低函数返回一个列表。在其他函数式编程语言中,它可能会要求我指定类型a
和x
。但我是python的新手,并没有完全弄清楚它是如何处理类型和内容的。什么是解决这个问题的pythonic方式?