生成哈夫曼码本
huffman的Python项目详细描述
生成哈夫曼码本!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'}