Ich versuche eine Version der kumulativen Summe in Python mit der Reduce-Funktion zu schreiben. Hier ist mein Code so weit:Python Cumsum mit Reduce-Funktion
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]))
Aber das Problem ist, dass in meiner Lambda-Funktion, Python weiß nicht, dass ein (mein Akku-Parameter) ist eine Liste Objekt, und ich möchte, dass meine Funktion reduzieren zurückzukehren eine Liste. In anderen funktionalen Programmiersprachen könnte ich den Typ a
und x
angeben. Aber ich bin neu bei Python und habe noch nicht ganz herausgefunden, wie es mit Typen und Dingen umgeht. Was ist der pythonische Weg, dieses Problem zu lösen?