你i的初始值为-1,第一遍循环是number[i]就越界了
number[-1]会指向数组最后一个值。
没太看懂你的逻辑,但是问题应该是出在 while i != len(number) - 1。你删除一个值的时候,数组长度 - 1 的同时计数变量 i + 1。
例如数组长度为4,计数i 为2,可以进入循环,这个时候删除一个值,数组长度为3 ,计数变量 i 也增加到3。。
所以应该是 while i < len(number) - 1。。 但说实话代码逻辑没看懂
java 里面下标可没有负值这一说 又不是redis