码迷,mamicode.com
首页 > 编程语言 > 详细

Python_heapq

时间:2017-06-03 15:16:11      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:port   str   导入   结果   随机   ace   返回   排序规则   push   

 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 ‘‘‘

 

Python_heapq

标签:port   str   导入   结果   随机   ace   返回   排序规则   push   

原文地址:http://www.cnblogs.com/cmnz/p/6937187.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!