考虑许多非常短(大约100个ascii字符)的字符串,这些字符串包含许多重复的子字符串。我想在Python程序中使用字符串,但是压缩它们以节省空间。 大多数压缩算法,如Lempel–Ziv(LZ),使用查找表对压缩数据进行编码。 有没有一种方法可以使用现有的压缩库(比如zlib,zlib module)来实现这一点?在伪代码中,为了压缩数据,需要调用
table = zlib.makeTable( data )
foreach string:
compressedString = zlib.compressString( table, string )
然后存储压缩的字符串。你知道吗
它不像你说的那样管用,但有一种方法可以满足你的要求。zlib有一个函数
deflateSetDictionary()
,您可以使用它为压缩器注入32K的数据,希望这些数据能够代表您要压缩的短字符串。您可以用示例字符串和/或示例字符串的一部分来构造它。你知道吗相关问题 更多 >
编程相关推荐