В документации Python,
записи с наименьшим значением извлекаются первыми (запись с наименьшим значением - это запись, возвращаемая функцией
sorted (list (записи)) [0]
). Типичным шаблоном для записей является кортеж в форме:(приоритет_номер, данные)
.
Похоже, очередь будет отсортирована по приоритету, а затем по данным , что не всегда может быть правильным. Предположим, что данные «item 2» помещены в очередь перед «item 1», элемент 1 по-прежнему будет идти первым. На другой странице документации, heapq , предлагается использовать счетчик . Таким образом, я буду хранить свои данные в виде entry = [priority, count, task]
. Разве здесь не что-то вроде
PriorityQueue.put(item, priority)
, тогда мне не нужно будет самостоятельно реализовывать порядок?