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

Calculate result according to previous item in the list result

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

考虑到我有一个包含温度的列表,我将列表定义为运行均值作为副本,然后根据公式替换每个项目。

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 行的迭代出现以下错误: 期望的索引值,得到了浮点数

知道哪里出了问题吗?可能这是一个基本的错误,但我已经挠头几天了。

非常感谢!

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 来代替尝试查看结果。

在您的代码中,RunningMean [1:3] returns [13, 15]RunningMean.

的切片版本

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