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