0

在 heapq 中存储字典时,我得到了以下信息。有谁知道如何解决这个问题?'dict' 和 'dict' 的实例之间不支持'<'

import heapq
PQ = []
heapq.heappush(PQ, {"1": "animal"})
heapq.heappush(PQ, {"2": "vechile"})
heapq.heappush(PQ, {"3": "music"})
print(PQ)

heapq.heappush(PQ, {"2": "vechile"})

TypeError:'dict'和'dict'的实例之间不支持'<'

4

1 回答 1

0

这里有几个选项:

  • 将您的字典包装在一个定义它们的顺序的类实例中
  • 将您的字典转换为已经有订单的类型

问题是什么{"1": "animal"} < {"2": "vechile"}意思?

键实际上是优先级和值数据,在这种情况下它们不应该是元组或命名元组或可排序对象。("1", "animal") < ("2", "vechile")有一个含义,尽管小数字符串的顺序与其数值的顺序不同。这是"10" < "2"vs的2 < 10问题。

于 2019-06-22T14:21:07.897 回答