получение очереди приоритета Python, возвращающей элемент с наибольшим приоритетом - PullRequest
0 голосов
/ 15 октября 2011

Я использую класс Queue.Priority в Python 2.7, как показано ниже

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 ()?

1 Ответ

3 голосов
/ 15 октября 2011

Если это только первый элемент кортежа, который имеет значение, и это целое число, вы можете просто отрицать его:

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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...