列表索引超出范围,但我不明白为什么

时间:2020-04-26 07:04:18

标签: python list matrix while-loop

这是我编写的用于线性插值矩阵中每个索引的函数(每个索引都是由五个值组成的列表,目标是确定第六个值)。 我不断收到错误消息,指出列表索引超出范围,但我不知道如何。我相信我遗漏了一些很小的东西,但是我无法确定问题所在。 这只是大型项目的一小部分,我想我已经花了很长时间了。因此,任何帮助将不胜感激。

tbi = [[1000, 2000, 3000, 4000, 5000], [1000, 2000, 3000, 4000, 5000]]

def interpolate():
    interpolated_vals = []
    i = 0
    while i < len(tbi):
        interpolated_vals.append(tbi[i][0]+((tbi[i][3] - tbi[i][2])*(tbi[i][1] - tbi[i][0])/(tbi[i][4] - [i][2])))
        i += 1

    return interpolated_vals

2 个答案:

答案 0 :(得分:0)

interpolated_vals.append(...行的结尾

[i][2])))

必须

 tbi[i][2])))

更正后,函数返回[1500, 1500]

答案 1 :(得分:0)

您最后缺少tbi

interpolated_vals.append(tbi[i][0]+((tbi[i][3] - tbi[i][2])*(tbi[i][1] - tbi[i][0])/(tbi[i][4] - [i][2])))

应为:

interpolated_vals.append(tbi[i][0]+((tbi[i][3] - tbi[i][2])*(tbi[i][1] - tbi[i][0])/(tbi[i][4] - tbi[i][2])))