python - Python 的通用优先级队列

标签 python queue

我需要在我的 Python 代码中使用优先级队列,并且:

  • 正在寻找优先级队列的任何快速实现
  • 最理想的情况是,我希望队列是通用的(即适用于具有指定比较运算符的任何对象)。

四处寻找有效的东西,我发现了heapq ,但是:

  • 我正在寻找比 heapq 更快的东西,它是在原生 Python 中实现的,所以它并不快。
  • 看起来不错,但似乎只为整数指定。我想它适用于任何具有比较运算符的对象,但它没有指定它需要什么比较运算符。
  • 更新:在 heapq 中重新比较,我可以按照 Charlie Martin 的建议使用 (priority, object),或者只实现 __cmp__为我的对象。

最佳答案

您可以使用 Queue.PriorityQueue .

回想一下,Python 不是强类型的,因此您可以保存任何您喜欢的内容:只需创建一个 (priority, thing) 元组即可。

关于python - Python 的通用优先级队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/407734/

相关文章:

python - 使用 opencv python 绑定(bind)将帧从网络摄像头保存到磁盘

python - 如何在Python中将16位十六进制和二进制表示形式转换为十进制 float (反之亦然)?

python - 无法在 cloud9 和 aws 中使用 Python 和 selenium 运行 chromedriver

c++ - 列表不显示来自 txt 文件

python - macOS 上的 virtualenv 使用不存在的 python 解释器

python - 如果嵌套数组的最大值高于阈值,则获取嵌套数组的 Numpy 条件

java - Java有可索引的多队列线程池吗?

algorithm - 如果 Queue 是使用数组实现的,那么最坏情况下的时间复杂度是多少?如何实现?

c - 用于基本数据结构的库,例如 C 中的队列

在 C 中为 *nix 创建线程安全的定时队列