import heapq    #导入heapq堆模块
import random
data = random.sample(range(1000),10)
print(data)
heapq.heapify(data) #堆化随机测试数据
print('堆化随机测试数据:',data)
heapq.heappush(data,30) #新元素入堆,自动调整堆
print('插入30后的堆数据:',data)
heapq.heappush(data,5)
print('插入5后的堆数据:',data)
print('删除的数据为:',heapq.heappop(data),'返回并删除最小元素,自动调整堆后的堆数据:',data)
print('弹出最小元素,同时新元素入堆后的数据:',heapq.heappushpop(data,1000))
print('弹出最小元素,同时新元素入堆后的数据',heapq.heapreplace(data,500))
print('弹出最小元素,同时新元素入堆后的数据',heapq.heapreplace(data,700))
print('返回最大的前3个元素',heapq.nlargest(3,data) ) #返回最大的前3个元素
print('返回指定排序规则下最小的3个元素',heapq.nsmallest(3,data,key=str)) #返回指定排序规则下最小的3个元素
print(data) '''
输出结果
[80, 366, 834, 269, 829, 295, 583, 952, 548, 668]
堆化随机测试数据: [80, 269, 295, 366, 668, 834, 583, 952, 548, 829]
插入30后的堆数据: [30, 80, 295, 366, 269, 834, 583, 952, 548, 829, 668]
插入5后的堆数据: [5, 80, 30, 366, 269, 295, 583, 952, 548, 829, 668, 834]
删除的数据为: 5 返回并删除最小元素,自动调整堆后的堆数据: [30, 80, 295, 366, 269, 834, 583, 952, 548, 829, 668]
弹出最小元素,同时新元素入堆后的数据: 30
弹出最小元素,同时新元素入堆后的数据 80
弹出最小元素,同时新元素入堆后的数据 269
返回最大的前3个元素 [1000, 952, 834]
返回指定排序规则下最小的3个元素 [1000, 295, 366]
[295, 366, 583, 500, 668, 834, 700, 952, 548, 829, 1000]
'''

Python_heapq的更多相关文章

随机推荐

  1. 《java入门第一季》之面向对象接口面试题

    首先,(1)叙述接口的成员特点: /* 接口成员特点 成员变量:只能是常量,默认都是常量,并且是静态的. 默认修饰符:public static final 建议:自己手动给出类似:public st ...

  2. JavaScript进阶(十一)JsJava2.0版本

    JavaScript进阶(十一)JsJava2.0版本 2007年9月11日,JsJava团队发布了JsJava2.0版本,该版本不仅增加了许多新的类库,而且参照J2SE1.4,大量使用了类的继承和实 ...

  3. Android群英传笔记——第七章:Android动画机制和使用技巧

    Android群英传笔记--第七章:Android动画机制和使用技巧 想来,最 近忙的不可开交,都把看书给冷落了,还有好几本没有看完呢,速度得加快了 今天看了第七章,Android动画效果一直是人家中 ...

  4. 菜鸟玩云计算之廿一: saltstack之pillar

    菜鸟玩云计算之廿一: saltstack之pillar 参考: 点击打开链接 查看pillar数据: # salt '*' pillar.items pillar的默认根目录在:/srv/pillar ...

  5. STL算法设计理念 - 二元函数,二元谓词以及在set中的应用

    demo 二元函数对象 #include <iostream> #include <cstdio> #include <vector> #include <a ...

  6. Cocos2D绘制纹理的一般方法

    如果你想在通常情况下绘制纹理,最简单的方法是在CCSprite的子类中实现.否则你将不得不自己创建一个CCRenderState对象传递给blend模式,着色器以及(可选的)纹理给CCRenderer ...

  7. mtk camera 移植步骤

    mtk camera 移植步骤: 1, Kernel层驱动代码文件添加 /mediatek/custom/doov92_wet_tdd/kernel/imgsensor/下添加imx179_mipi_ ...

  8. 新版MATERIAL DESIGN 官方动效指南(二)

    继上一篇,本文继续第二部分,从动效的速度.动态持续时间.通用持续时间和缓动曲线4个部分,教你创建平滑一致的Material Design 动效.再系统的干货都比不上官方的动效指南,西瓜就在这,赶紧来捡 ...

  9. PS 滤镜——素描算法(一)

    这个算法结合高斯滤波和图层混合中的颜色减淡模式实现. 可以参考相关博客: http://blog.csdn.net/wsfdl/article/details/7610634 本文增加了一点调色,使得 ...

  10. Java + Selenium + TestNG + Maven

    环境准备: 1. Java: Install Java jdk: Version: java 1.8 or aboveConfigure Java Environment Variables:Add ...