Python Glossary English

все Python 3heapqфункция

heapq.heapreplace()

операции

Извлекает минимум и вставляет новый элемент одним проходом — эффективнее пары heappop()+heappush(). Сначала извлекает, потом вставляет.

Синтаксис

heapq.heapreplace(heap, item)

На пустой куче падает с IndexError: извлекать нечего, а извлечение здесь идёт первым. Вернуться может элемент больше вставленного, поэтому в цикле «топ-k» heapreplace() безопасен только под проверкой item > heap[0]; без неё берите heappushpop(). Размер кучи не меняется никогда — ради этого функцию и держат в буферах фиксированной длины.

Примеры

import heapq
h = [1, 3, 5]
heapq.heapreplace(h, 4) # → 1  (извлекли 1, вставили 4)
h # → [3, 4, 5]

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности