`heapq` 是Python标准库中的一个模块,用于实现堆(优先队列)数据结构。它提供了一些函数来操作堆结构,如 `push`、`pop`、`heapify` 等。`heapq` 主要用于实现小顶堆,即父节点的值小于或等于其子节点的值。这个模块在处理需要高效找到最大或最小元素的问题时非常有用,例如在需要找出列表中最大的K个元素或最小的K个元素时。
使用 `heapq` 的基本方法包括:
`heapq.heappush(heap, item)`:将元素 `item` 推入堆 `heap` 中。
`heapq.heappop(heap)`:弹出并返回堆 `heap` 中的最小元素,并保持堆的不变性。如果堆为空,会抛出 `IndexError`。
`heapq.heapify(x)`:将列表 `x` 转换为堆。