【发布时间】:2017-10-18 18:59:50
【问题描述】:
这是我正在尝试运行的 python 脚本:
n = 50000000000 ##50 billion
b = [0]*n
for x in range(0,n):
b[x] = random.randint(1,899999)
...但是我得到的输出是:
E:\python\> python sort.py
Traceback (most recent call last):
File "E:\python\sort.py", line 8, in <module>
b = [0]*n
MemoryError
那么,我现在该怎么办?
【问题讨论】:
-
您的内存不足。错误消息是这样说的。
-
你正在尝试分配一个 40GB 的数组
-
int至少占用 24 个字节;你有 5,000,000,000ints。那是 111GB。 -
如果您解释一下您打算如何处理这么多随机数,也许会更有用。几乎可以肯定有一种方法可以做到这一点而不会耗尽你的记忆。
-
@litelite 不,
int是 Python 对象,表示任意精度的整数,而不是机器字。