Python Glossary English

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Сообщить о неточности