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方式?