Python_heapq

 1 import heapq    #导入heapq堆模块
 2 import random
 3 data = random.sample(range(1000),10)
 4 print(data)
 5 heapq.heapify(data) #堆化随机测试数据
 6 print('堆化随机测试数据:',data)
 7 heapq.heappush(data,30) #新元素入堆,自动调整堆
 8 print('插入30后的堆数据:',data)
 9 heapq.heappush(data,5)
10 print('插入5后的堆数据:',data)
11 print('删除的数据为:',heapq.heappop(data),'返回并删除最小元素,自动调整堆后的堆数据:',data)
12 print('弹出最小元素,同时新元素入堆后的数据:',heapq.heappushpop(data,1000))
13 print('弹出最小元素,同时新元素入堆后的数据',heapq.heapreplace(data,500))
14 print('弹出最小元素,同时新元素入堆后的数据',heapq.heapreplace(data,700))
15 print('返回最大的前3个元素',heapq.nlargest(3,data) ) #返回最大的前3个元素
16 print('返回指定排序规则下最小的3个元素',heapq.nsmallest(3,data,key=str)) #返回指定排序规则下最小的3个元素
17 print(data)
18 
19 '''
20 输出结果
21 [80, 366, 834, 269, 829, 295, 583, 952, 548, 668]
22 堆化随机测试数据: [80, 269, 295, 366, 668, 834, 583, 952, 548, 829]
23 插入30后的堆数据: [30, 80, 295, 366, 269, 834, 583, 952, 548, 829, 668]
24 插入5后的堆数据: [5, 80, 30, 366, 269, 295, 583, 952, 548, 829, 668, 834]
25 删除的数据为: 5 返回并删除最小元素,自动调整堆后的堆数据: [30, 80, 295, 366, 269, 834, 583, 952, 548, 829, 668]
26 弹出最小元素,同时新元素入堆后的数据: 30
27 弹出最小元素,同时新元素入堆后的数据 80
28 弹出最小元素,同时新元素入堆后的数据 269
29 返回最大的前3个元素 [1000, 952, 834]
30 返回指定排序规则下最小的3个元素 [1000, 295, 366]
31 [295, 366, 583, 500, 668, 834, 700, 952, 548, 829, 1000]
32 '''
原文地址:https://www.cnblogs.com/cmnz/p/6937187.html