字典的存储容量和想要在python中将大量数据存储到字典中

时间:2014-11-13 14:51:01

标签: python memory dictionary

我想在python中将大量数据存储到字典中。巨大的数据可能在 21 GB 附近。我写了一个代码片段。在字典中存储整数值

代码:

import timeit
import sys
dicts = {}
print "\n***Building dict..."
start = timeit.default_timer()
for j in range(0,5):
    for i in range(0,1000000):
        dicts[''+str(j)+str(i)] = i
        print str(i) + '-' + str(j)
        print "Size : ", sys.getsizeof(dicts)/1024/1024, " MB"
print "Total time of build dict", timeit.default_timer() - start 

在运行时,当我在 1.2GB 周围使用 **getsizeof(dicts)**达到大小时,无法将值存储在字典中但不会显示任何错误词典 能够存储数据

所以,问题是如何将大量数据存储到字典中?

注意:不需要将数据存储在文件或数据库中。因为我想非常快地检索键,值对

1 个答案:

答案 0 :(得分:3)

Python dict的大小限制取决于OS提供的可用内存。问题在于,当dict增长(调整大小)时,它必须复制自己以重新分配键,所以当字典变得非常庞大时,这个过程可能开始需要比实际可用的内存更多的内存。