我需要创建一个内存对象,其键为9位数字,每个键都关联着一个布尔值。我一直在使用类似下面简化示例的字典:
#!/usr/bin/python
from __future__ import print_function
import sys
myDict = {}
for n in range(56000):
myDict[n] = True
print('Count:',len(myDict),' Size:', sys.getsizeof(myDict))
我需要能够查找和检索与每个键相关联的布尔值。问题在于字典的大小。在一个64位Linux系统上使用Python 2.7并参考上面的示例,根据sys.getsizeof()函数,字典的大小为3.1兆字节(每个条目大约占用56个字节来存储9个数字和一个布尔值)。
我需要在字典中存储(大约)55,000个条目的布尔状态。每个字典键都是一个9位数。我已经尝试使用整数和str(theInteger)作为键,但字典的大小没有变化。
是否有其他数据结构或方法可以在处理如此大的数据集时节省内存?
True
,False
,字典中没有该键)感兴趣,还是只对布尔值感兴趣?如果是后者,使用仅包含True
值的set
更为合适。 - nneonneo