根据列表结果中的上一项计算结果

时间:2018-06-12 12:09:12

标签: python for-in-loop

我在计算数字列表时遇到了一些麻烦。初始列表对应于温度数据,我需要每天计算RunningMean温度。每天的运行平均值取决于前一天的运行平均值以及前一天的温度(和常数)。

考虑到我有一个带温度的列表,我将列表RunningMean定义为副本,然后根据公式替换每个项目。

Temperature = [14.5, 13, 15, 16]
RunningMean = Temperature
RMConstant = 0.8
for i in RunningMean [1:3]:         
    RunningMean [i] = (1-RMConstant)*Temperature[i-1]+RMConstant*RMean[i-1]
#I skip the first item to avoid problems when calling i-1 index
#Replace each item in RunningMean with the result of the formula

由于某种原因,第5行的迭代给出了以下错误:  预期指数值,浮动

任何出错的想法?可能这是一个基本的错误,但我已经抓了几天了。

非常感谢!

2 个答案:

答案 0 :(得分:0)

Temperature = [14.5, 13, 15, 16]
RunningMean = Temperature
RMConstant = 0.8
for i in range(1,len(RunningMean)):
    RunningMean [i] = (1-RMConstant)*Temperature[i-1]+RMConstant*RunningMean[i-1]

我不知道RMean是什么,所以我在尝试时使用RunningMean来查看结果。

答案 1 :(得分:0)

在您的代码中,RunningMean [1:3]返回[13, 15]RunningMean的切片版本。

您应该在for循环中代替RunningMean[1:3],而是将其替换为range(1,len(RunningMean))。它会给你想要的结果。