python dict 的内存控制
下边是我写的一段代码,随机生成100万条4列数据,并放到dict里边,然后把内容写到txt文件中
Python code:
#!/usr/bin/python2.5
import random
import time
time.sleep(5)
shapes = {}
print "--------------START---------------------------"
for i in range(1000000):
shape_id = str(random.randint(0, 10000))
r1 = str(random.randint(0, 1000000))
r2 = str(random.randint(0, 1000000))
r3 = str(random.randint(0, 1000000))
r4 = str(random.randint(0, 1000000))
shapes.setdefault(shape_id, []).append([r1, r2, r3, r4])
print '---------------Dictionary---------------------'
time.sleep(5)
f = open("test.txt", "w")
for shape_id, res in shapes.items():
for (r1, r2, r3, r4) in res:
f.write(shape_id + ',' + r1 + ',' + r2 + ',' + r3 + ',' + r4 + '\n')
f.close()
当我执行的时候,生成了shapes的时候内存占用到达了200MB多,但是生成文件的时候只有30MB多一点,这是为什么能?这个办法能否有优化,因为我可能要导入500M的文件,像这样的话可能需要3-4g的内存空间来存储它,但是本地的内存显然不够,不知道大家有没有办法来优化它?
谢谢
谢谢楼上的
我的问题是20mb的数据导入到DICT中,内存占用了100多MB
有办法解决这个问题吗?
好像bsDDB 只能保存String。
我的KEY 是一个ID ,对应着一个list,list 中有很多tuple,例如
123=>[(2,3,4),(3,4,5)...]
234=>[(2
相关问答:
python如何解压缩.Z的文件啊,在windows系统环境下
Q7Z 是一款基于 Qt4 的 7z 压缩工具
http://code.google.com/p/k7z/
开源的
http://sourceforge.net/projects/k7z/
LS的能具体说一说吗?
......
python和pyqt以及Eric4都已经配置好了,打开Eric4写个python程序比如简单的
print“hello,world”,怎么编译运行了,Start菜单的所有命令都出现和图中差不多的对话框,应当怎么运行了?
求大家指教
没有人用 ......
之前我的电脑上安装了IronPython2.0,后安装ShareDevelop3.0,采用默认设置
我在ShareDevelop中建立了一个默认的Python的控制台或窗体项目,运行时报错如下:
调试器抛出异常System.IO.FileNotFoundException: ......
大家好,我是一个新手,刚开始学python,但是刚开始的helloworld都没法打印,让我很无奈。
我的python安装路径为f:\python31。在path中也设置对了,在windows下运行是这样显示的,希望各位前辈指点一下。谢谢
Pyth ......
void xxx(int& x)
{
x = 100;
}
def("xxx", xxx);
import y
a = 0
y.xxx(a)
报错了:
ArgumentError: Python argument types in
L0_L ......