我是Python的初學者,並且出現了一個奇怪的越界錯誤。Python - 在大型初始化列表上的索引超出範圍
的想法是,我需要使用緩存初始化:
arr = [0]*1000000
然後在同一個函數訪問,如果i的值超過1500它給了我一個不折不扣的調用
def func (i) :
k=1
a = i
arr = [0]*1000000
while (i>1):
if arr[i] != 0:
k = k + arr[i] - 1
break
if i%2 == 0:
i = i/2
else:
i = 3*i + 1
k += 1
arr[a] = k
return k
邊界錯誤。但是,緩存應該初始化爲一百萬英寸。我錯過了什麼嗎?由於
在循環之前沒有明確提到'k','a'和'i'。你可以發佈一些更多的代碼,這樣它包括這些變量的初始化? – Makoto
對不起,添加了一個更完整的代碼 –
最終該數組將被作爲參數傳入,但我在函數中初始化它以消除任何其他錯誤原因 –