为了澄清,我的原始列表包含两个连续值之间的差异,从零开始。我想使用函数样式将此列表转换为实际值列表,而不必在计算期间保持全局状态,不使用for循环,使用map,reduce等。
my_list = [0, 1, 0, 3, 2, 0, 0, 2, 1]
result = my_function(my_list)
print(result)
[0, 1, 1, 4, 6, 6, 6, 8, 9]
答案 0 :(得分:4)
只需使用itertools.accumulate
。
答案 1 :(得分:3)
def my_function(lst):
return [sum(lst[:i]) for i in range(len(lst))]