Python Glossary English

все Python 3heapqфункция

heapq.heappushpop()

операции

Вставляет элемент и сразу извлекает минимум — порядок обратный heapreplace(). Если новый элемент меньше всех, он же и вернётся, куча не изменится.

Синтаксис

heapq.heappushpop(heap, item)

Один просев дерева вместо двух, поэтому пара heappush() плюс heappop() всегда проигрывает: обе операции O(log n), но здесь работы вдвое меньше. В отличие от heapreplace(), спокойно переживает пустую кучу — просто вернёт то, что вы передали. Отсюда идиома «топ-k»: держите кучу ровно из k элементов и лейте поток через heappushpop().

Примеры

import heapq
h = [3, 5, 7]
heapq.heappushpop(h, 1) # → 1  (1 < min, сразу вернули)
heapq.heappushpop(h, 9) # → 3  (вставили 9, извлекли 3)

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности