我想在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)**
达到大小时,无法将值存储在字典中但不会显示任何错误。 词典 能够存储数据
所以,问题是如何将大量数据存储到字典中?
注意:不需要将数据存储在文件或数据库中。因为我想非常快地检索键,值对。
答案 0 :(得分:3)
Python dict的大小限制取决于OS提供的可用内存。问题在于,当dict增长(调整大小)时,它必须复制自己以重新分配键,所以当字典变得非常庞大时,这个过程可能开始需要比实际可用的内存更多的内存。