Python中大列表的内存管理

问题描述

| 今天,我使用具有64000000个条目的数组/列表编写了一个程序。但是,当使用Python编写“ 0”时,它运行良好,但是后来,随着程序的计算,我的Ubuntu冻结了-对输入没有任何反应,甚至没有鼠标移动。我试了两次,结果是一样的。 用C ++实现时,ѭ1可以很好地运行并且运行非常快。 除了开始崩溃以外,我的程序是否有任何原因会在运行过程中冻结? 编辑:要回复克里斯下面,我的代码直到几个循环之后才冻结。 谢谢你们! 对于那些有兴趣查看代码的人,这是一个程序,一个蛮力的项目Euler 211:
def e211():
ans=0
sigma=[1]*64000000
for i in range(2,64000000):
    j=i;
    if ((j%1000==0) or (j<100)):
        print(j)
    q=i*i
    while j<64000000:
        sigma[j]+=q
        j+=i
for i in range(1,64000000):
    j=int(sqrt(sigma[i]))
    if j*j==sigma[i]:
        ans+=i
if __name__==\'__main__\':
    print(e211())
    

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)