Как помещать элементы в очереди с приоритетом?

В документации Python,

записи с наименьшим значением извлекаются первыми (запись с наименьшим значением - это запись, возвращаемая функцией sorted (list (записи)) [0] ). Типичным шаблоном для записей является кортеж в форме: (приоритет_номер, данные) .

Похоже, очередь будет отсортирована по приоритету, а затем по данным , что не всегда может быть правильным. Предположим, что данные «item 2» помещены в очередь перед «item 1», элемент 1 по-прежнему будет идти первым. На другой странице документации, heapq , предлагается использовать счетчик . Таким образом, я буду хранить свои данные в виде entry = [priority, count, task] . Разве здесь не что-то вроде

PriorityQueue.put(item, priority)

, тогда мне не нужно будет самостоятельно реализовывать порядок?

33
задан agf 15 February 2012 в 08:18
поделиться