我需要创建一个内存对象,该对象具有 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(),dict 的大小为 3.1 兆字节。(每个条目大约 56 个字节来存储 9 个数字和一个布尔值)
我需要在字典中存储(大约)55.000 个条目的布尔状态。每个 dict 键是一个 9 位整数。我尝试使用整数和 str(theInteger) 作为键,而字典的大小没有变化。
我应该使用其他类型的数据结构或方法来节省如此庞大的数据集的内存吗?