Python Glossary English

Python 3.14+heapqфункция

heapq.heappushpop_max()

операции

Добавляет элемент в max-кучу и сразу извлекает наибольший — быстрее, чем heappush_max() и heappop_max() по отдельности.

Синтаксис

heapq.heappushpop_max(heap, item) -> item

Появилась в Python 3.14; раньше max-кучу имитировали, кладя в обычную кучу отрицательные числа (-x) и меняя знак при извлечении, а для строк и объектов этот трюк не работал вовсе. Порядок «сначала положить, потом достать»: если новый элемент больше корня, он же и вернётся, а куча не изменится. Отсюда отличие от heapreplace_max(), которая сначала достаёт старый корень и потому может вернуть значение меньше нового.

Примеры

import heapq
h = [5, 3]
print(heapq.heappushpop_max(h, 9), h)  # → 9 [5, 3]
print(heapq.heappushpop_max(h, 1), h)  # → 5 [3, 1]

См. также

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