在Python中有效存储布尔值以节省内存的最佳方法
怎么才能在一个像字典一样的集合中,以一个长数字为索引,存储从一百万到四十五万的布尔值(也就是真或假)呢?我需要尽量少占用内存。因为每个布尔值和整数都要占用超过22个字节的内存。有没有更省内存的方法来存储布尔值呢?
3 个回答
0
你有没有想过使用一种混合的列表和位串呢?
可以用列表来存储你的一维位数据。每个列表项可以保存一个固定长度的位串。你可以先用列表来找到你感兴趣的位串,然后再用这个位串来查找或修改你想要的位。
这个列表应该能让你高效地找到位串,而位串则应该尽可能地节省存储空间。混合的列表和位串可以在访问速度(访问列表中的位串会稍微慢一些)和存储效率(位数据加上列表的额外开销)之间找到一个平衡。