我试图将以下循环转换为accumulate()
调用,但是我失败了:
total = 0
for h in heat_values:
total += h
total -= total*0.25
如何累加包括0.25衰减因子的h值?
背景:我想做一个有趣的练习,以功能编程风格模拟同时加热和冷却过程(加法运算是加热步骤,减法是冷却步骤)。我想获取累积值以绘制过程的值。
最佳答案
除非我的数学或推理不正确,否则这就是使用accumulate
的方法:
heatvalues = [20, 30, 40, 50]
list(accumulate(heatvalues, lambda x, y: (x+y)*.75))
>>>[20, 37.5, 58.125, 81.09375]
编辑:如果您只想要最后一个元素,也就是总数,那么它将变为:
list(accumulate(heatvalues, lambda x, y: (x+y)*.75))[-1]
>>>81.09375
关于python - 累计两个操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43479892/