Python 3.14+heapqфункция
heapq.heappop_max()
операции
Извлекает и возвращает наибольший элемент max-кучи, сохраняя её свойство. Аналог heappop() для кучи с максимумом в корне.
Синтаксис
heapq.heappop_max(heap) -> item
Появилась в Python 3.14; раньше max-кучу имитировали, кладя в обычную кучу отрицательные числа (-x) и меняя знак при извлечении, а для строк и объектов этот трюк не работал вовсе. Работает только со списком, уже превращённым в max-кучу через heapify_max(): на обычном списке вернёт heap[0], а не максимум. На пустой куче — IndexError, поэтому цикл пишут как while heap:.
Примеры
import heapq
h = [2, 9, 4, 7]
heapq.heapify_max(h)
print([heapq.heappop_max(h) for _ in range(len(h))]) # → [9, 7, 4, 2]
import heapq
try:
heapq.heappop_max([])
except IndexError as e:
print(e) # → index out of range
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности