functional programming - Python list comprehension -
possible duplicate:
list comprehension running total
i'm trying write concise list comprehension statement create cdf: example:
print f([0.2, 0.3,0.1,0.4]) [0.2,0.5,0.6,1.0]
a standard procedure (i want write list comprehension function f()):
def f(probabilities) : sum = 0 returnlist = [] count in probabilities: sum +=count returnlist = returnlist + [sum] return returnlist
edit: found function numpy.cumsum(). i'll check if uses list comprehensions.
that operation common many languages (mainly functional ones, not only) provide abstractions it, name scanl
(it's reduce
intermediate results). let's call ireduce
("iterative reduce"):
def ireduce(f, state, it): x in it: state = f(state, x) yield state
and use it:
import operator def f(probabilities): return ireduce(operator.add, 0, probabilities) print(list(f([0.2, 0.3,0.1,0.4]))) # [0.2, 0.5, 0.6, 1.0]
Comments
Post a Comment