在优先队列中添加项目

2024-10-06 11:28:32 发布

您现在位置:Python中文网/ 问答频道 /正文

的文档Queue.PriorityQueuePython中的类如下所示:

https://docs.python.org/2/library/queue.html#Queue.PriorityQueue

它说,“条目的典型模式是以下形式的元组:(priority_number,data)”

但是,当我尝试将基本数据输入优先级队列时,我得到:

from Queue import PriorityQueue
pq = PriorityQueue()
pq.put(1, "one")
pq.put(2, "two")
pq.put(3, "three")
pq.get()
1
pq.get()
2
pq.get()
3

不是第一个值性能确认()优先级,第二个值是数据?似乎情况正好相反。当我尝试输入(数据,优先级)时,我得到:

^{pr2}$

这不是正确的顺序,因为它应该输出“一,二,三” 有什么想法吗?在


Tags: 数据文档httpsorg目的docsgetqueue
1条回答
网友
1楼 · 发布于 2024-10-06 11:28:32

第一个值是优先级。最低优先级首先从队列中出来,所以第一个示例是有意义的。第二个例子也是正确的,因为按字母顺序"one" < "three" < "two"。它把你的琴弦当作优先事项,然后按顺序排列。正如你链接的页面所说:

“首先检索值最低的条目(值最低的条目是sorted(list(entries))[0])返回的条目。”

另外,您可能希望将元组放入队列中,我不确定,例如

pq.put((1, "some data"))
pq.put((2, "some lower priority data"))

相关问题 更多 >