我在python 2.7中使用Queue.Priority类,如下所示
q=Queue.PriorityQueue()
q.put((2,"second"))
q.put((1,"first"))
q.put((3,"third"))
print q.get(True)
print q.get(True)
print q.get(True)
这将返回以下结果,因为get()返回优先级最低的项
(1, 'first')
(2, 'second')
(3, 'third')
假设,我需要返回最高优先级的项目。我该怎么办?除了覆盖get()方法之外,有没有办法做到这一点?
答案 0 :(得分:3)
如果它只是元组的第一个元素,它是一个整数,你可以简单地否定它:
q=Queue.PriorityQueue()
q.put((-2,"second"))
q.put((-1,"first"))
q.put((-3,"third"))
print q.get(True)
print q.get(True)
print q.get(True)
这将打印出来:
(-3, 'third')
(-2, 'second')
(-1, 'first')