Python 3.14+heapqфункция
heapq.heappush_max()
операции
Добавляет элемент в max-кучу, сохраняя наибольший элемент в heap[0]. Аналог heappush() для кучи с максимумом в корне.
Синтаксис
heapq.heappush_max(heap, item) -> None
Появилась в Python 3.14; раньше max-кучу имитировали, кладя в обычную кучу отрицательные числа (-x) и меняя знак при извлечении, а для строк и объектов этот трюк не работал вовсе. list.append() вместо неё ломает кучу молча: элемент ляжет в конец и не всплывёт. Элементы должны сравниваться между собой: кортежи (приоритет, объект) с равным приоритетом сравнят объекты и могут упасть с TypeError — добавляйте счётчик вторым полем.
Примеры
import heapq
h = []
for x in [5, 1, 8, 3]:
heapq.heappush_max(h, x)
print(h[0]) # → 8
import heapq
h = [('low', 1), ('high', 3)]
heapq.heapify_max(h)
print(h[0]) # → ('low', 1) — строки сравниваются по алфавиту, а не по смыслу
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности