当前位置:  开发笔记 > 编程语言 > 正文

脚本返回"已杀"

如何解决《脚本返回"已杀"》经验,为你挑选了1个好方法。

我有这个相当简单的脚本,它生成1000000000(9个零)数字,然后将生成的数字存储在文件中,生成它们的次数.

import random
import csv

dic = {}

for i in range(0, 1000000000):
    n = random.randint(0, 99999)
    if n in dic:
        dic[n] += 1
    else:
        dic[n] = 1
writer = csv.writer(open('output', 'w'))
for key, value in dic.iteritems():
    writer.writerow([key, value])
writer.close()

该脚本正在退出并显示一条Killed消息.根据这个问题,'杀死'是什么意思?使用dic.iteritems()应足以防止此类问题,但事实并非如此.

那我怎么能继续完成这样的任务呢?



1> user2357112 ..:

看起来你的问题不是dict.你的问题在这里:

for i in range(0, 1000000000):
         ^^^^^^^^^^^^^^^^^^^^

在Python 2上,这是一个列表1000000000个项目的长度,超过了您的系统可以处理的项目.你想要的xrange不是range.xrange根据需要生成数字.(在Python 3上,range做了xrange过去和xrange过去的事情.)

哦,如果你认为11 GB应该足够用于该列表:不是在Python中.尝试sys.getsizeof(0)查看int占用的字节数.

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有