Python Glossary English

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