Python Glossary English

Python 3.14+heapqфункция

heapq.heapreplace_max()

операции

Извлекает наибольший элемент max-кучи и кладёт на его место новый за один проход — куча при этом не меняет размер.

Синтаксис

heapq.heapreplace_max(heap, item) -> item

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

Примеры

import heapq
h = [5, 3]
print(heapq.heapreplace_max(h, 9), h)  # → 5 [9, 3]
import heapq
try:
    heapq.heapreplace_max([], 1)
except IndexError as e:
    print(e)  # → index out of range

См. также

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

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