1、1:如何创建堆:方法有以下2种:1.1:初始化变量heap = [].(根据堆队列本身属于列表的一类)1.2:调用heap的初始化函数heapq.heapify().
2、2:函数heapq.heappush(heap, item)功能:把一个对象压入堆heap.注意:图中用例所示,item的类型为一个元素,一个列表都可以入堆.
3、3:函数heapq.heappop(heap)功能:从堆heap里面弹出最小的元素.如果heap是空的,会抛出异常.注意:如果相访问heap的最小元素而不从heap弹出,则用heap[0],参见堆特性.
4、4:heapq.heappushpop(heap, item)功能:把一个元素压到堆,然后从heap弹出一个最小的元素.注意:该组合操作的效果要优于调用函数heappush()和heappop().
5、5:函数heapq.heapreplace(heap, item)功能:从堆heap弹出最小的元素,然后往堆heap压入新的元素.注意:该操作不会影响堆的长度,对固定堆的情况很有用.此外效果优于调用函数heappush()和heappop().
6、6:函数heapq.merge(*iterables)功能:把多个堆队列合并,并返回一个迭代器.和函数sorted(itertools.chain(*iterables))类似,但返回值不同.
7、7函数:heapq.nlargest(n, iterable[, key])功能:返回迭代数据集合iterable中第n大的元素.注意:该函数比通常计算多个list第N大的元素方法(如多个list的合并,排序等)效果更方便快捷.
8、8:函数heapq.nsmallest(n, iterable[, key])功能:返回迭代数据集合iterable中第n小的元素.注意:该函数比通常计算多个list第N小的元素方法(如多个list的合并,排序等)效果更方便快捷.