我需要在我的 Python 代码中使用优先级队列,并且:
- 正在寻找优先级队列的任何快速实现
- 最理想的情况是,我希望队列是通用的(即适用于具有指定比较运算符的任何对象)。
四处寻找有效的东西,我发现了heapq ,但是:
- 我正在寻找比
heapq
更快的东西,它是在原生 Python 中实现的,所以它并不快。 - 看起来不错,但似乎只为整数指定。我想它适用于任何具有比较运算符的对象,但它没有指定它需要什么比较运算符。
- 更新:在
heapq
中重新比较,我可以按照 Charlie Martin 的建议使用(priority, object)
,或者只实现__cmp__
为我的对象。
最佳答案
您可以使用 Queue.PriorityQueue .
回想一下,Python 不是强类型的,因此您可以保存任何您喜欢的内容:只需创建一个 (priority, thing)
元组即可。
关于python - Python 的通用优先级队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/407734/