2016-04-09 53 views
0

我在32位機上使用32位版本的Python。如何解決蟒蛇有限數組長度

當我嘗試做一個大陣,我收到以下錯誤,當我的數組長度爲5592406

Traceback (most recent call last): 
    File "/root/PycharmProjects/stackidiots/main.py", line 3, in <module> 
    dd [x] = x 
IndexError: list assignment index out of range 

它是Python的限制或者我有什麼錯我的代碼? 這是我的代碼:

dd = [] 
for x in range(5592406): 
    dd [x] = x 

那麼如何解決這個問題呢?如果我切換到64位,它可以變得更大嗎?

+0

*我的代碼有問題*是不確定的。請在您的問題中粘貼完整的錯誤消息。 –

+0

*你得到了什麼*錯誤?顯示完整的錯誤消息,包括任何堆棧跟蹤。如果您發佈的代碼實際上是您運行的內容,則該錯誤與32位,Python限制或編號5592406無關;您正在嘗試分配不存在的列表條目。 – user2357112

回答

3

不,它是不是 Python的能力的限制。

相反,您在代碼中發生了錯誤。

你會發現你的錯誤說:

IndexError: list assignment index out of range

注意列表分配件。您正在嘗試將x分配給尚不存在的列表中的某個指令。當你做dd [x] = x

相反,只是追加X到列表中與list.append(value)

dd = [] 
for x in range(5592406): 
    dd.append(x) 

雖然這個工作,它是繁瑣,可以在同一行更容易做了list comprehension

dd = [x for x in range(5592406)] 
1

最短的解決問題的方法是:

dd = list(range(5592406)) 

這適用於Python 2和3

錯誤消息:

IndexError: list assignment index out of range 

告訴你,你試試分配給還沒有存在的索引。 這與32位或64位版本的Python無關。