【发布时间】:2020-12-28 13:52:57
【问题描述】:
我在 python 的优先级队列中有两个具有相同等级的元组。 get 方法将采用插入的第一个元素。 如果两个元素在队列中具有相同的优先级,我想先返回最后插入的元素:
#python 3.7
import queue
q= queue.PriorityQueue()
q.put((1, 'first_in'))
q.put((1, 'last_in'))
q.put((2, 'not_to_be_returned'))
for i in range(q.qsize()):
print(q.get(i))
#Returns
(1, 'first_in')
(1, 'last_in')
(2, 'not_to_be_returned')
#looking for :
(1, 'last_in') # in case of same rank return the last inserted
(1, 'first_in')
(2, 'not_to_be_returned')
#Merci
【问题讨论】:
-
我刚刚注意到 'first_in` 被首先抓取,因为 first_in 按字母顺序排在第一位。 q= queue.PriorityQueue() q.put((1, 'first_in')) q.put((1, 'last_in') q.put((1, 'abcdf') 返回(1, 'abcdf'), (1, 'first_in'), (1, 'last_in'). .我们可以添加第二个条目吗
-
@tessie,感谢您富有洞察力的通知。确实。
标签: python data-structures priority-queue