位置: 编程技术 - 正文

详解Python中heapq模块的用法(python3 heapq)

编辑:rootadmin

推荐整理分享详解Python中heapq模块的用法(python3 heapq),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python的heap,python的heap,python的heapq函数,python3 heapq,python heapq的具体用法,python的heap,python heapq详解,python heapq详解,内容如对您有帮助,希望把文章链接给更多的朋友!

heapq 模块提供了堆算法。heapq是一种子节点和父节点排序的树形数据结构。这个模块提供heap[k] <= heap[2*k+1] and heap[k] <= heap[2*k+2]。为了比较不存在的元素被人为是无限大的。heap最小的元素总是[0]。

打印 heapq 类型

打印结果

push一个元素到heap里, 修改上面的代码

打印结果

根据结果可以了解,子节点的元素大于父节点元素。而兄弟节点则不会排序。

heapq.heapify(list)

将list类型转化为heap, 在线性时间内, 重新排列列表。

打印结果

详解Python中heapq模块的用法(python3 heapq)

删除并返回堆中最小的元素, 通过heapify() 和heappop()来排序。

打印结果

可以看到已排好序的heap。

heapq.heapreplace(iterable, n)

删除现有元素并将其替换为一个新值。

打印结果

heapq.nlargest(n, iterable) 和 heapq.nsmallest(n, iterable)

返回列表中的n个最大值和最小值

PS:一个计算题构建元素个数为 K=5 的最小堆代码实例:

结果:

Python设计足球联赛赛程表程序的思路与简单实现示例 每年意甲德甲英超西甲各大联赛的赛程表都是球迷们的必看之物,想起之前写过的一段生成赛程表的代码,用Python来写这类东西太舒服了。这个算法叫

Python中的迭代器与生成器高级用法解析 迭代器迭代器是依附于迭代协议的对象——基本意味它有一个next方法(method),当调用时,返回序列中的下一个项目。当无项目可返回时,引发(raise)StopIte

深入理解Python中装饰器的用法 因为函数或类都是对象,它们也能被四处传递。它们又是可变对象,可以被更改。在函数或类对象创建后但绑定到名字前更改之的行为为装饰(decorator)。

本文链接地址:https://www.jiuchutong.com/biancheng/387663.html 转载请保留说明!

上一篇:Python中operator模块的操作符使用示例总结(python mor)

下一篇:Python的Asyncore异步Socket模块及实现端口转发的例子(python asyncio await)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络