位置: 编程技术 - 正文
推荐整理分享详解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, 在线性时间内, 重新排列列表。
打印结果
删除并返回堆中最小的元素, 通过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)。
标签: python3 heapq
本文链接地址:https://www.jiuchutong.com/biancheng/387663.html 转载请保留说明!上一篇:Python中operator模块的操作符使用示例总结(python mor)
下一篇:Python的Asyncore异步Socket模块及实现端口转发的例子(python asyncio await)
友情链接: 武汉网站建设