生成哈夫曼码本!Huffman codes是将单个符号压缩成二进制序列的最佳方式,该二进制序列可以在不使用符号间分隔符的情况下被明确解码(它是“prefix-free”)。
以(symbol, weight)格式提供一个2元组的iterable,生成一个huffman码本,作为字典以{symbol: code, ...}格式返回。>>> huffman.codebook([('A', 2), ('B', 4), ('C', 1), ('D', 1))
{'A': '10', 'B': '0', 'C': '110', 'D': '111'}
如果您有一个iterable的符号,collections.Counter是一个方便的方法来对它们进行汇总。>>> huffman.codebook(collections.Counter('man the stand banana man').items())
{' ': '111',
'a': '10',
'b': '0100',
'd': '0110',
'e': '11010',
'h': '0101',
'm': '1100',
'n': '00',
's': '11011',
't': '0111'}
欢迎加入QQ群-->: 979659372
推荐PyPI第三方库