考虑x/y坐标列表和一个字节“count”。 x/y的范围可能是0到5000,即2500万个单元格。用于x/y坐标稀疏列表的Python数据结构
但是,数据将会相当稀疏地填充,最多只有几千个条目,并且大多数坐标将具有零个条目。
该结构偶尔会被查找/添加到(例如,如果x = 5和y = 10,然后是++),但更频繁地转换为x/y/count列表(排序并不重要)
查找的最快数据结构显然是一个二维数组,但你在寻找24 MB内存,迭代输出一个列表可能会很昂贵。对于磁盘存储,您可以实现gif样式压缩,其中0字节后跟另一个字节表示x空单元格,其他任何内容都是单元格值 - 但这无助于内存情况。
字典的字典可能会很好地平衡查找/迭代速度和内存使用。
是否有我应该考虑(无论是内置于Python的任何其他合适的数据结构,现有的库或者更一般的数据结构?
呃 - http://en.wikipedia.org/wiki/ Sparse_matrix#Storing_a_sparse_matrix – Ryan 2011-05-17 21:03:42
注意自己,读完所有已发布的标签,然后张贴在SO ...这是所有;) – Ryan 2011-05-17 21:09:44