import heapq heapq.heappushpop(heap, item)
heap
- список с кучей,item
- добавляемый элемент.Функция heappushpop()
модуля heapq
добавляет значение элемента item
в кучу heap
, затем возвращает и удаляет самый маленький элемент из кучи heap
.
Комбинация push/pop функция [heapq.heappushpop()
возвращает меньшее из двух значений, оставляя большее значение в куче.
Комбинированное действие выполняется более эффективно, чем вызов heapq.heappush()
, за которым следует отдельный вызов heapq.heappop()
.
>>> import heapq >>> h = [(3, 'three'), (1, 'one'), (7, 'seven'), (5, 'five'), (9, 'nine')] >>> heapq.heapify(h) >>> heapq.heappushpop(h, (0, 'zero')) # (0, 'zero') >>> h # [(1, 'one'), (3, 'three'), (7, 'seven'), (5, 'five'), (9, 'nine')] >>> heapq.heappushpop(h, (2, 'two')) # (1, 'one') >>> h # [(2, 'two'), (3, 'three'), (7, 'seven'), (5, 'five'), (9, 'nine')]