все Python 3heapqфункция
heapq.heappush()
операции
Добавляет элемент в кучу, сохраняя её инвариант. Куча — обычный список, минимум всегда лежит в heap[0]. Сложность O(log n).
Синтаксис
heapq.heappush(heap, item)
Куча — обычный список, поэтому инвариант легко сломать по неосторожности: append(), insert() или присваивание в середину мимо heapq делают все последующие heappop бессмысленными. В очереди с приоритетом кладут кортежи (приоритет, объект), но при равных приоритетах Python начнёт сравнивать вторые элементы и упадёт с TypeError на несравнимых объектах — спасает возрастающий счётчик вторым полем кортежа. Если сразу после вставки нужно извлечение, есть heappushpop: одна перестройка вместо двух.
Примеры
import heapq
h = []
heapq.heappush(h, 3)
heapq.heappush(h, 1)
heapq.heappush(h, 2)
h[0] # → 1 (минимум всегда первый)
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности