草庐IT

python - marisa trie 后缀压缩?

我正在使用thismarisatrie的自定义Cython包装器作为键值multimap的库。我的trie条目看起来像key0xffdata10xffdata2将key映射到元组(data1,data2)。data1是可变长度的字符串,但data2始终是4字节无符号整数。0xff是一个分隔符字节。我知道从理论上讲,trie并不是最佳的数据结构,但各种实际考虑使它成为最佳选择。在这个用例中,我有大约10-20百万个键,每个键平均有10个数据点。data2对于许多条目来说是多余的(在某些情况下,对于给定键的所有数据点,data2始终相同),所以我想到了采用最频繁的data2条目并向每个键添