我尝试了“heapq”并得出结论,我的期望与我在屏幕上看到的不同.我需要有人解释它是如何工作的以及它在哪里有用.

If you need to maintain a sorted list as you add and remove values,

check out heapq. By using the functions in heapq to add or remove

items from a list, you can maintain the sort order of the list with

low overhead.

这就是我所做的和得到的.

import heapq

heap = []

for i in range(10):

heap.append(i)

heap

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

heapq.heapify(heap)

heapq.heappush(heap, 10)

heap

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

heapq.heappop(heap)

0

heap

[1, 3, 2, 7, 4, 5, 6, 10, 8, 9] <<< Why the list does not remain sorted?

heapq.heappushpop(heap, 11)

1

heap

[2, 3, 5, 7, 4, 11, 6, 10, 8, 9] <<< Why is 11 put between 4 and 6?

因此,正如您所看到的那样,“堆”列表根本没有排序,实际上,添加和删除项目的次数越多,它就越混乱.推动价值取无法解释的位置.

到底是怎么回事?

python利用什么模块_什么是Python的heapq模块?相关推荐

  1. python利用公式计算_从零开始用Python构造决策树(附公式、代码)

    来源:Python中文社区 作者:weapon 本文长度为700字,建议阅读5分钟 本文介绍如何不利用第三方库,仅用python自带的标准库来构造一个决策树. 起步 熵的计算: 根据计算公式: 对应的 ...

  2. python修改html内容_详解Python利用Beautiful Soup模块修改内容示例代码

    Beautiful Soup是一个可以从HTML或XML文件中提取数据的Python 库.它能够通过你喜欢的转换器实现惯用的文档导航.查找.修改文档的方式.他还能够修改HTML/XML文档的内容.这篇 ...

  3. python中request方法_如何使用python语言中的request模块获取代码

    在python设计语言中,可以使用request第三方包获取请求的参数等,可以利用请求路径获取静态代码,查看相关请求参数和指标等.下面利用一个实例说明request模块获取代码和参数,操作如下: 工具 ...

  4. python 命令行 模块_深入浅析Python 命令行模块 Click

    Click 是用 Python 写的一个第三方模块,用于快速创建命令行.我们知道,Python 内置了一个 Argparse 的标准库用于创建命令行,但使用起来有些繁琐,Click 相比于 Argpa ...

  5. python3 json模块_详解python 3.6 安装json 模块(simplejson)

    JSON 相关概念: 序列化(Serialization):将对象的状态信息转换为可以存储或可以通过网络传输的过程,传输的格式可以是JSON,XML等.反序列化就是从存储区域(JSON,XML)读取反 ...

  6. python制作安装包_如何制作python安装模块(setup.py)

    Python模块的安装方法: 1. 单文件模块:直接把文件拷贝到$python_dir/lib 2. 多文件模块,带setup.py:python setup.py install 3. egg文件, ...

  7. python解析器打包_打包发布Python模块的方法详解

    前言 昨天把自己的VASP文件处理库进行了打包并上传到PyPI,现在可以直接通过pip和easy_install来安装VASPy啦(同时欢迎使用VASP做计算化学的童鞋们加星和参与进来), 由于自己的 ...

  8. python实现日历功能_详解Python日历模块的使用

    calendar模块的函数都是日历相关的,提供了对日期的一些操作方法,和生成日历的方法. calendar模块中提供了三大类: 一.calendar.Calendar(firstweekday=0) ...

  9. python 日历模块_详解Python日历模块的使用

    calendar模块的函数都是日历相关的,提供了对日期的一些操作方法,和生成日历的方法. calendar模块中提供了三大类: 一.calendar.Calendar(firstweekday=0) ...

  10. python秒表模块_如何使用Python 实现秒表功能?

    其实python不是我们看到那么复杂,如果打好扎实的基础,我们可以用python做一些好玩的事情,比如实现秒表功能,一起来看下吧~ 前言: 本文的重点是在python中使用Tkinter创建秒表. 关 ...

最新文章

  1. IP 管理,几多欣喜几多忧
  2. 使用PHP往Windows系统中添加用户
  3. python3中map函数_解决Python3下map函数的显示问题
  4. linux 导入函数,共享库 – Linux ELF文件:如何获取属于导入函数的共享对象
  5. qnx 设备驱动开发_QNX驱动开发——应用层与resource manger交互 | 学步园
  6. [转]基于overlayfs的硬盘资源隔离工具troot
  7. 深度学习中的内存管理问题研究综述
  8. oracle 无效数字 0,oracle to_namber之后报ora-01722:无效数字
  9. Scientific Reports|比较转录组分析揭示了杀菌剂氰烯菌酯对尖孢镰刀菌的抗性调控机制和杀菌活性
  10. 如何保护眼睛,可采用语音方式获取外界知识,并积极锻炼身体做到劳逸结合。
  11. 解剖RISC-V架构(一)
  12. 松鼠症 知识过载与疲于奔命
  13. 如何快速制作gif图片
  14. ROS : Navigation 基于碰撞传感器、悬崖传感器的实时避障 [kobuki]
  15. JavaWeb-----Ajax异步请求 json对象 服务器如何返回json数据 使用ajax完成一个案例
  16. excel汇总怎么做?
  17. 行政公益诉讼与民事公益诉讼可相互转化
  18. Python3.6 车牌识别代码源码
  19. 计算机不识别lacie硬盘,如何从LaCie Rugged 外置硬盘上恢复丢失的数据
  20. 解读电商平台10大促销活动类型

热门文章

  1. 无服务器冷启动不是问题-这就是为什么(对于大多数应用程序)
  2. Java 11功能– Java飞行记录器
  3. spring常见面试问题_Spring面试问题
  4. jar运行 osgi保存_自动化的OSGi测试运行程序
  5. AppD方法:Java 9支持
  6. 什么是JSON处理(JSON-P API)?
  7. JSON处理1.1:100DaysOfJavaEE8
  8. 带有JWT示例的​​Spring Oauth2
  9. 如何使用插件生成自定义Java 8代码
  10. 使用Apache Drill REST API通过Node构建ASCII仪表板