Python 3.14+heapqфункция
heapq.heapify_max()
операции
Превращает список на месте в max-кучу: наибольший элемент оказывается в heap[0]. Основа для остальных функций с суффиксом _max.
Синтаксис
heapq.heapify_max(x) -> None
Появилась в Python 3.14; раньше max-кучу имитировали, кладя в обычную кучу отрицательные числа (-x) и меняя знак при извлечении, а для строк и объектов этот трюк не работал вовсе. Функция возвращает None, а не кучу: x = heapify_max(data) даёт None. Список после неё не отсортирован — упорядочен только корень; и смешивать с ним heappush/heappop (функции min-кучи) нельзя: инвариант молча сломается.
Примеры
import heapq
data = [3, 1, 4, 1, 5]
print(heapq.heapify_max(data)) # → None
print(data[0]) # → 5
import heapq
# старый способ до 3.14: отрицательные числа
old = [-x for x in [3, 1, 4]]
heapq.heapify(old)
print(-old[0]) # → 4
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности