尝试使用list.insert时Python索引错误

时间:2012-10-30 18:09:07

标签: python insert indexing range

这是我的代码的一个部分(大部分)。 http://pastebin.com/KCZNkYNB

根据设计,我所经历的是迭代这个序列,直到我计算的距离最小化1cm。我不想继续我的下一个时代,这就是为什么我认为我应该使用.insert作为我的列表。我需要覆盖它当前所在的索引处的数据。

我得到的错误是:


Traceback (most recent call last):
  File "receiver2.py", line 342, in <module>
    main()
  File "receiver2.py", line 244, in main
    N.insert(k, ( dec.sqrt( (dec(satellite_output.x[k]) - dec(x_veh_coords[epoch]))**2 + (dec(satellite_output.y[k]) - d
ec(y_veh_coords[epoch]))**2 + (dec(satellite_output.z[k]) - dec(z_veh_coords[epoch]))**2 ) ) )
IndexError: list index out of range

此错误与pastebin文件中的第54行对应。

我不明白当你插入时索引是如何超出范围的。 完整的pastebin输出:http://pastebin.com/qKhRjn2Q 您将在该输出的底部看到最后一个“k”指数为7,然后它达到了纪元1,并且增加到指数8,但随后指数超出范围。我非常困惑为什么会这样。我保证所有数据确实存在,试图插入,好像我要赞美.insert部分并取消注释.append,它工作正常。不幸的是,我刚刚意识到追加是“隐藏”我需要的数据,以便正确计算我的雅可比。

我希望我已经提供了足够的信息。感谢您提供的任何帮助!

2 个答案:

答案 0 :(得分:1)

错误行中有六个索引操作(例如satellite_output.x[k]);其中一个可能导致错误,而不是插入操作。

错误消息没有那么有用。

答案 1 :(得分:0)

我明白了。 :d

我需要做的是确保当我的距离最小化到我想要的精确度时,我需要设置我的x,y,z vech坐标,以便在下一个时期使用新的近似笛卡尔坐标。 / p>

我很欣赏所有的回复,很抱歉浪费了一些时间来做一些如此微不足道的事情。