Python Glossary English

все Python 3heapqпонятие

heapq

модуль

Двоичная куча поверх обычного списка: быстро достать наименьший элемент, очередь с приоритетом, k наибольших.

Синтаксис

import heapq

heapq нужен, когда снова и снова берут минимум из меняющегося набора: очередь задач, алгоритм Дейкстры, слияние отсортированных потоков. Куча — это обычный список, а функции модуля поддерживают её порядок; сам список при этом не отсортирован, отсортирован только nums[0]. Для потоков между потоками есть queue.PriorityQueue. Куча здесь минимальная: максимальную раньше получали, складывая числа со знаком минус.

Примеры

import heapq
nums = [5, 1, 8, 3]
heapq.heapify(nums)
heapq.heappush(nums, 0)
print(heapq.heappop(nums), heapq.heappop(nums))  # → 0 1
print(heapq.nlargest(2, [5, 1, 8, 3]))  # → [8, 5]

См. также

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