我正在尝试使用http://en.literateprograms.org/Huffman_coding_%28Python%29中的代码在 Python 3 中编写霍夫曼编码, 但它不起作用。如果我在 Python 2.7 中运行代码,它运行良好。
以下几行是问题所在:
heapq.heapify(trees)
while len(trees) > 1:
childR, childL = heapq.heappop(trees), heapq.heappop(trees)
parent = (childL[0] + childR[0], childL, childR)
heapq.heappush(trees, parent)
我得到一个TypeError in heapq.heappush(u,parent): "unorderable types: tuple() < str()"
所以我已经寻找了一个解决方案,我认为,我必须实现一个_lt_函数。可能两个或多个节点具有相同的频率,然后 heapq 尝试比较元组,我认为,他无法比较元组的元组。但我不知道我必须在哪里以及如何创建一个比较方法来解决这个问题?有人可以帮忙吗?;-)