Python3.4版本中heapq包含了几个有用的方法:

heapq.heappush(heap,item):将item,推入heap

>>> items = [1,2,9,7,3]
>>> heapq.heappush(items,10)
>>> items
[1, 2, 9, 7, 3, 10]
>>>

heapq.heappop(heap):将heap的最小值pop出heap,heap为空时报IndexError错误

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 寻找有志同道合的小伙伴,
互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
>>> heapq.heappop(items)#heap在pop时总是将最小值首先pop出
1
>>> items
[2, 3, 9, 7, 10]
>>>

heapq.heappushpop(heap,item):pop出heap中最小的元素,推入item

>>> items
[2, 3, 9, 7, 10]
>>> heapq.heappushpop(items,11)
2
>>> items
[3, 7, 9, 11, 10]
>>>

heapq.heapify(x):将list X转换为heap

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 寻找有志同道合的小伙伴,
互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
>>> nums = [1,10,9,8]
>>> heap = list(nums)
>>> heapq.heapify(heap)
>>> heap
[1, 8, 9, 10]
>>>

heapq.heapreplace(heap,item):pop出最小值,推入item,heap的size不变

>>> heap
[1, 8, 9, 10]
>>> heapq.heapreplace(heap,100)
1
>>> heap
[8, 10, 9, 100]
>>

heapq.merge(*iterable):将多个可迭代合并,并且排好序,返回一个iterator

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 寻找有志同道合的小伙伴,
互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
>>> heap
[8, 10, 9, 100]
>>> heap1 = [10,67,56,80,79]
>>> h = heapq.merge(heap,heap1)
>>> list(h)[8, 10, 9, 10, 67, 56, 80, 79, 100]#需要 说明的是这里所谓的排序不是完全排序,只是两个list对应位置比较,#将小的值先push,然后大的值再与另外一个list的下一个值比较

heapq.nlargest(n,iterable,key):返回item中大到小顺序的前N个元素,key默认为空,可以用来指定规则如:function等来处理特定的排序

itemsDict=[{'name':'dgb1','age':23,'salary':10000},{'name':'dgb2','age':23,'salary':15000},{'name':'dgb3','age':23,'salary':80000},{'name':'dgb4','age':23,'salary':80000}
]itemsDictlarge = heapq.nlargest(3,itemsDict,lambda s:s['salary'])
print(itemsDictlarge)
[{'name': 'dgb3', 'age': 23, 'salary': 80000}, {'name': 'dgb4', 'age': 23, 'salary': 80000}, {'name': 'dgb2', 'age': 23, 'salary': 15000}]

如果没有指定key,那么就按照第一个字段来排序

heapq.nsmallest(n,iterable,key):返回item中小到大顺序的前N个元素,key默认为空,可以用来指定规则如:function等来处理特定的排序

这个函数的用法与上一个nlargest是一样的。

To create a heap, use a list initialized to[], or you can transform a populated list into a heap via functionheapify().

创建heap可以通过创建list,和使用heapify方法来实现。

Python内置的heapq模块的使用相关推荐

  1. Python内置函数os模块shutil模块

    一.内置函数 内置函数就是python里面自带的一些函数,不需要自己定义,直接就可以使用的函数. print(sum([1,2,3])) #求和的 print(min("123") ...

  2. python内置方法+数学模块+随机模块+序列化模块

    内置方法 abs 绝对值函数 round 四舍五入 (n.5 n为偶数则舍去 n.5 n为奇数,则进一!) 特点:奇进偶不进 res = round(4.51) #正常的四舍五入 5 res = ro ...

  3. python 内置的os模块将文件夹下所有图片名称加上指定字符

    # eg:将文件夹下所有图片名称加上'M' def change_name(path_img):global iif os.path.isfile(path_img):file_path=os.pat ...

  4. node sqlite 插入数据_方便且实用,Python内置的轻量级数据库实操

    之前我们在很多项目案例中都使用了MySQL数据库.有的同学问:MySQL安装和配置太麻烦了,老是搞不定,有没有更简便的方法? 当然有咯! Python内置的sqlite3模块就是一个轻量级的数据库,不 ...

  5. python内置库有哪些_python 内置库

    广告关闭 回望2020,你在技术之路上,有什么收获和成长么?对于未来,你有什么期待么?云+社区年度征文,各种定制好礼等你! version: 0. 2.0, configurations: }, de ...

  6. 收藏!Python内置的轻量级数据库竟如此好用!全网最实用sqlite3实战项目。

    前段时间推送了一篇Python操作MySQL数据库的文章:我用 Python 处理3万多条数据,只要几秒钟--,文章发布后反应很好,很多粉丝给我私信,有的朋友说:MySQL安装起来太麻烦了,有没有更简 ...

  7. python内置collections模块的使用

    python内置collections模块的使用 文章目录: 一.collections模块说明 1.查看collections模块的定义路径 2.查看collections文档介绍信息 3.查看co ...

  8. python的shutil模块是内置的_Python之shutil模块11个常用函数详解,python内置函数是什么...

    Python之shutil模块11个常用函数详解,python内置函数是什么 shutil 是 Python 中的高级文件操作模块,与os模块形成互补的关系,os主要提供了文件或文件夹的新建.删除.查 ...

  9. Python 内置时间模块:Calendar

    Python 内置的日历( calendar )模块主要输出跟日历相关的内容,相对 datetime 和 time 模块来说, calendar 模块的功能要简单些. 最常用的两个功能是输出某年的日历 ...

最新文章

  1. Yann LeCun:发现智能原理是AI的终极问题 | 独家对话
  2. linux设备驱动——总线、设备、驱动
  3. 输出nc数据_气象数据处理的火箭加速器—CDO
  4. CodeForces - 1422D Returning Home(最短路+思维建图)
  5. Ajax响应处理数据的三种格式(主要使用gson包)
  6. react学习(40)----react中的jsx简介
  7. leetcode 110 --- 判断给定的二叉树是否是平衡二叉树
  8. python标注审核_Python类型标注
  9. Javascript学习历程之事件
  10. ftk学习记(对话框篇)
  11. RAID6结构原理详解
  12. 客户机无法上网,ping 127.0.0.1提示unable to contact IP driver ,error code2
  13. 浅析物联网及云计算技术在传统汽车检测线中的应用
  14. 直通车怎么能不推广计算机设备,直通车智能推广具体怎么设置?如何操作?
  15. win10桌面计算机打不开,win10“此电脑”双击打不开,任何文件夹都打不开
  16. python中怎么统计英文字符的个数_python 输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数用python代码输入一行字符...
  17. 【李沐:动手学深度学习pytorch版】第2章:预备知识
  18. 我的世界服务器成就系统的其他成就是什么,大量的成就奖励亟待领取!《我的世界》【PC版】Hypixel服务器成就系统来啦~...
  19. mysql中计算百分比
  20. CAD2018安装计算机黑屏,简单几步解决cad2019在win10上打不开的问题

热门文章

  1. Python学习总结5:数据类型及转换
  2. 【C语言探索之旅】第三部分第三课:SDL开发游戏之显示图像
  3. (转)青春有限,走红有年
  4. 关于Windows Phone 7开发工具离线安装包
  5. rasp 系统_RASP攻防 —— RASP安全应用与局限性浅析
  6. 【重复制造精讲】3、成本收集
  7. 实际价格计算:确定方法
  8. ABAP选择屏幕权限控制
  9. SAP PP模块调研问卷
  10. SAP SD模块几个透明表