广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python——heap
  • 189
分享到

Python——heap

Pythonheap 2023-01-31 05:01:30 189人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

通过优先队列可以构造堆,堆是一种实用的数据结构。尽管python中没有独立的堆类型,但是包含了一些对操作函数的模块,这个模块叫heapq,主要的操作包含如下几个: heappush(heap,x):x元素插入堆 heapp

通过优先队列可以构造堆,堆是一种实用的数据结构。尽管python中没有独立的堆类型,但是包含了一些对操作函数的模块,这个模块叫heapq,主要的操作包含如下几个:

heappush(heap,x):x元素插入堆
heappop(heap):弹出对中最小元素
heapify(heap):将heap属性强制应用到任意一个列表
hrapreplace(heap,x):将heap中最小元素弹出,同时x元素入堆
hlargest(n,iter):返回iter中第n大的元素
hsmallest(n,iter):返回iter中第n小的元素

堆的定义和使用如下:

>>> from heapq import *
>>> from random import shuffle
>>> x=[1,2,3,4,5,6]
>>> shuffle(x)
>>> heap=[]
>>> for i in x:
    heappush(heap,i)
>>> heap
[1, 3, 2, 6, 4, 5]
>>>

注:shuffle函数将列表顺序打乱
堆元素的追加:

>>> heap
[1, 3, 2, 6, 4, 5]
>>> heappush(heap,0)
>>> heap
[0, 3, 1, 6, 4, 5, 2]
>>>  

删除堆中元素:

>>> heap
[0, 3, 1, 6, 4, 5, 2]
>>> heappop(heap)
0
>>> heap
[1, 3, 2, 6, 4, 5]
>>> heappop(heap)
1
>>> heap
[2, 3, 5, 6, 4]
>>>

heapify函数将列表生成堆:

>>> x=[1,4,2,3,5,4]
>>> heapify(x)
>>> x
[1, 3, 2, 4, 5, 4]
>>> heappop(x)
1
>>> heappop(x)
2
>>> x
[3, 4, 4, 5]
>>> 

hrapreplace函数弹出最小元素将另一个元素加入堆:

>>> x
[3, 4, 4, 5]
>>> heapreplace(x,0)
3
>>> x
[0, 4, 4, 5]
>>> 

--结束END--

本文标题: Python——heap

本文链接: https://www.lsjlt.com/news/188967.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python——heap
    通过优先队列可以构造堆,堆是一种实用的数据结构。尽管Python中没有独立的堆类型,但是包含了一些对操作函数的模块,这个模块叫heapq,主要的操作包含如下几个: heappush(heap,x):x元素插入堆 heapp...
    99+
    2023-01-31
    Python heap
  • Python中的优先队列(priority queue)和堆(heap)
    目录队列和优先队列(Priority Queue)堆(heap)简介初始化构建堆堆的插入(节点上浮)堆的删除(节点下浮)堆的应用队列和优先队列(Priority Queue) 队列是...
    99+
    2022-11-11
  • dbeaver刷新mysql表:java heap space
    **问题:**dbeaver中刷新表 报错 java heap space **原因:**初始安装完成dbeaver时,会设置一个初始内存,当需要使用的内存大于此内存的时候就会报该错误 我的初始内存...
    99+
    2023-09-03
    DBeaver mysql
  • heap和stack有哪些区别
    这篇“heap和stack有哪些区别”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“heap和stack有哪些区别”文章吧。区...
    99+
    2023-07-04
  • PostgreSQL中的Multi Version Heap Tuple分析
    这篇文章主要介绍“PostgreSQL中的Multi Version Heap Tuple分析”,在日常操作中,相信很多人在PostgreSQL中的Multi Version Heap Tuple分析问题上...
    99+
    2022-10-18
  • 怎么使用Chrome的Heap Snapshot功能
    本篇内容主要讲解“怎么使用Chrome的Heap Snapshot功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Chrome的Heap Snapshot功能”吧!在下图测试代码第13...
    99+
    2023-06-04
  • 验证堆表(heap table)存储方式
    验证堆表(heap table)存储方式堆表(heap table)的存储方式:     Oralce 数据库系统中最普通,最为常用的即为堆表。    堆表...
    99+
    2022-10-18
  • PostgreSQL存储引擎之heap tuple结构
    struct HeapTupleHeaderData { union { HeapTupleFields t_heap; DatumTupleFi...
    99+
    2022-10-18
  • 如何理解JVM中的Stack和Heap
    如何理解JVM中的Stack和Heap,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在JVM中,内存分为两个部分,Stack(栈)和Heap(堆),这里,我们从...
    99+
    2023-06-17
  • Java虚拟机的Heap怎么理解
    本篇内容介绍了“Java虚拟机的Heap怎么理解”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在Java虚拟机中,我是一个位高权重的大管家,...
    99+
    2023-06-02
  • 分析和解决java.lang.OutOfMemoryError: Java heap space问题
    这里写目录标题 问题场景问题分析与解决1.优化项目代码2.提升Java heap size3.JVM参数配置配置参考堆区参数配置说明非堆区参数配置说明 问题场景 最近客户反馈在生...
    99+
    2023-10-24
    java jvm 开发语言 优化 内存
  • 深入了解Golang官方container/heap用法
    目录开篇container/heap核心函数InitPop/PushRemoveFix如何接入IntHeap优先队列按时间戳排序总结开篇 在 Golang 的标准库 containe...
    99+
    2022-11-11
  • 浅谈java object对象在heap中的结构
    目录对象和其隐藏的秘密Object对象头数组对象头整个对象的结构对象和其隐藏的秘密 java.lang.Object大家应该都很熟悉了,Object是java中一切对象的鼻祖。 接下...
    99+
    2022-11-12
  • java利用Heap堆实现PriorityQueue优先队列
    本篇内容介绍了“java利用Heap堆实现PriorityQueue优先队列”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先做一个优先队列...
    99+
    2023-06-03
  • java heap space错误的解决方法是什么
    Java heap space错误是由于堆内存不足导致的。堆内存是Java虚拟机用来存储对象实例和数组的地方,当堆内存不足时,就会抛...
    99+
    2023-08-22
    Java
  • 解决idea出现的java.lang.OutOfMemoryError: Java heap space的问题
    文章目录 1. 复现问题 2. 分析问题 3. 解决问题 4. 补充解决java.lang.OutOfMemoryError: PermGen space问题 1. 复现问题 ...
    99+
    2023-09-06
    java intellij-idea 开发语言 tomcat java-ee
  • Java出现Error: Java heap space错误的解决方法
    本篇内容主要讲解“Java出现Error: Java heap space错误的解决方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java出现Error: Java heap space错误...
    99+
    2023-06-03
  • eclipse java.lang.OutOfMemoryError: Java heap space的解决方案是怎么样的
    这期内容当中小编将会给大家带来有关eclipse java.lang.OutOfMemoryError: Java heap space的解决方案是怎么样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。e...
    99+
    2023-06-03
  • C/C++中栈(stack)&堆(heap)详解及其作用介绍
    目录概述程序运行中的栈和堆堆和栈的差异申请方式和回收方式申请后系统的响应申请效率比较申请大小的限制堆和栈中的存储内容概述 栈 (stack) 是为执行线程流出的内存空间. 堆 (he...
    99+
    2022-11-12
  • PostgreSQL中哪个函数为heap tuple找到合适的分区
    本篇内容介绍了“PostgreSQL中哪个函数为heap tuple找到合适的分区”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作