如何解决python有限数组长度问题

2024-03-29 04:59:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一台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位,它会变大吗?你知道吗


Tags: in版本机器most错误rangeroot数组
2条回答

您的问题的最短解决方案是:

dd = list(range(5592406))

这适用于python2和python3。你知道吗

错误消息:

IndexError: list assignment index out of range

告诉你你试图分配给一个不存在的索引。 这与32位或64位版本的Python无关。你知道吗

不,这不是Python能力的限制。你知道吗

相反,您在代码中犯了一个错误。你知道吗

你会注意到你的错误是:

IndexError: list assignment index out of range

注意列表赋值工件。您正在尝试将x分配给列表中尚不存在的索引。当你做dd [x] = x。你知道吗

相反,只需将x附加到带有^{}的列表中

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

虽然这是可行的,但是它很麻烦,而且可以更容易地用list comprehension在一行中完成。你知道吗

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

相关问题 更多 >