import heapq
python的heapq模块提供了对堆的支持。 heapq堆数据结构最重要的特征是heap[0]永远是最小的元素
常用方法:nlargest(),nsmallest(),heapify(),heappop()
如果需要的个数较小,使用nlargest或者nsmallest比较好
如果需要的个数已经接近了序列长度,使用sorted()[:N]获取前N个数据比较好
如果只需要唯一一个最大或最小值,则直接使用max()或者min()
# heap为定义堆,item增加的元素
heapq.heappush(heap, item)
# 将列表转换为堆
heapq.heapify(list)
#删除并返回最小值,因为删除的是第一个元素,而这个是最小堆
heapq.heappop(heap)
heapq.heapreplace(heap.item)
删除并返回最小元素值,添加新的元素值
heapq.heappushpop(list, item)
判断添加元素值与堆的第一个元素值对比;如果大,则删除并返回第一个元素,然后添加新元素值item; 如果小,则返回item. 原堆不变。