Шаг 136.
Python: тонкости программирования. Общие структуры данных Python. Очереди с приоритетом. queue.PriorityQueue - красивые очереди с приоритетом

    На этом шаге мы рассмотрим использование этого класса для создания очередей с приоритетом.

    Данная реализация очереди с приоритетом во внутреннем представлении использует двоичную кучу heapq и имеет одинаковую временную и пространственную вычислительную сложность.


См. документацию Python "queue.PriorityQueue": https://docs.python.org/3.6/library/queue.html.

    Разница состоит в том, что очередь с приоритетом PriorityQueue синхронизирована и обеспечивает семантику блокирования с целью поддержки многочисленных параллельных производителей и потребителей.

    В зависимости от вашего варианта использования она либо станет полезной, либо слегка замедлит вашу программу. В любом случае вы можете предпочесть интерфейс на основе класса, предлагаемый классом PriorityQueue, использованию интерфейса на основе функций, предлагаемого модулем heapq.

>>> from queue import PriorityQueue
>>> q = PriorityQueue()
>>> q.put((2, 'программировать'))
>>> q.put((1, 'есть'))
>>> q.put((3, 'спать'))
>>> while not q.empty():
	next_item = q.get()
	print(next_item)

	
# Результат:
(1, 'есть')
(2, 'программировать')
(3, 'спать')

    На следующем шаге мы подитожим изученный материал.




Предыдущий шаг Содержание Следующий шаг