位置: IT常识 - 正文

使用Python实现一个堆栈结构(利用python)

发布时间:2024-01-20

推荐整理分享使用Python实现一个堆栈结构(利用python),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:用python做,python如何运用,利用python,python怎么用,python怎样用,python如何用,用python编写,用python编写,内容如对您有帮助,希望把文章链接给更多的朋友!

什么是堆栈?

堆栈是一个数据结构,其存储在一个后进/先出的方式的项目。这通常被称为LIFO。这与队列形成对比,队列以先入/先出(FIFO)方式存储项目。

使用list创建一个Python堆栈

list您可能经常在程序中使用的内置结构可用作堆栈。相反的.push(),你可以使用.append()新的元素添加到您的堆栈的顶部,同时.pop()除去了LIFO顺序的元素:

>>>myStack=[]>>>myStack.append('a')>>>myStack.append('b')>>>myStack.append('c')>>>myStack['a','b','c']>>>myStack.pop()'c'>>>myStack.pop()'b'>>>myStack.pop()'a'>>>myStack.pop()Traceback(mostrecentcalllast):File"<console>",line1,in<module>IndexError:popfromemptylist使用Python实现一个堆栈结构(利用python)

你可以在最后的命令中看到,如果你调用空堆栈,list它将引发一个。IndexError.pop()

list有熟悉的优点。你知道它是如何工作的,并且可能已经在你的程序中使用它了。

不幸的是,list与其他数据结构相比,您会看到一些缺点。问题是随着它的发展,它会遇到速度问题。list存储a 中的项目的目的是提供对中的随机元素的快速访问list。在较高级别,这意味着项目在内存中彼此相邻存储。

如果你的堆栈比当前拥有它的内存块大,那么Python需要做一些内存分配。这可能导致一些.append()呼叫比其他呼叫花费更长的时间。

还有一个不太严重的问题。如果您使用.insert()在末尾以外的位置向堆栈添加元素,则可能需要更长时间。但是,这通常不是你要对堆栈做的事情。

下一个数据结构将帮助您解决您看到的重新分配问题list。

使用collections.deque创建一个Python堆栈

该collections模块包含deque,这对于创建Python堆栈很有用。deque发音为“deck”,代表“双端队列”。

您可以使用同样的方法deque,你上面看到的list,.append()和.pop():

>>>fromcollectionsimportdeque>>>myStack=deque()>>>myStack.append('a')>>>myStack.append('b')>>>myStack.append('c')>>>myStackdeque(['a','b','c'])>>>myStack.pop()'c'>>>myStack.pop()'b'>>>myStack.pop()'a'>>>myStack.pop()Traceback(mostrecentcalllast):File"<console>",line1,in<module>IndexError:popfromanemptydeque
本文链接地址:https://www.jiuchutong.com/zhishi/303181.html 转载请保留说明!

上一篇:python字符串的多行输出(python字符串多行)

下一篇:python中series转dataframe的两种方法(series转换为dataframe)

  • 微信支付怎么将之前认证的账户清除(微信支付怎么将零钱转入银行卡)

    微信支付怎么将之前认证的账户清除(微信支付怎么将零钱转入银行卡)

  • 腾讯视频手机号怎么登录(腾讯视频手机号登录在哪里)

    腾讯视频手机号怎么登录(腾讯视频手机号登录在哪里)

  • 手机打电话黑屏无法挂电话(手机打电话黑屏是什么原因)

    手机打电话黑屏无法挂电话(手机打电话黑屏是什么原因)

  • 筛选后复制为什么还出现全部数据(筛选后复制为什么复制不全)

    筛选后复制为什么还出现全部数据(筛选后复制为什么复制不全)

  • kindle晚上关灯能看吗(kindle晚上要关机吗)

    kindle晚上关灯能看吗(kindle晚上要关机吗)

  • 骁龙660的手机有哪些(骁龙660手机有哪些推荐)

    骁龙660的手机有哪些(骁龙660手机有哪些推荐)

  • mbe6a5是什么型号(mbex6)

    mbe6a5是什么型号(mbex6)

  • 红米k30pro上市日期(红米k30pro手机上市时间)

    红米k30pro上市日期(红米k30pro手机上市时间)

  • 笔记本扩展显示器黑屏(笔记本扩展显示器分辨率)

    笔记本扩展显示器黑屏(笔记本扩展显示器分辨率)

  • 音响中英文语音切换(音响中英文语音怎么设置)

    音响中英文语音切换(音响中英文语音怎么设置)

  • 如何集到抖音钻卡(抖音的钻)

    如何集到抖音钻卡(抖音的钻)

  • 小米cc9怎么唤醒小爱同学(小米cc9呼叫等待怎么设置)

    小米cc9怎么唤醒小爱同学(小米cc9呼叫等待怎么设置)

  • 手机进水用大米能吸水么?(手机进水用大米吸水几个小时)

    手机进水用大米能吸水么?(手机进水用大米吸水几个小时)

  • 火山小视频和抖音是一个公司的吗(火山小视频和抖音的区别)

    火山小视频和抖音是一个公司的吗(火山小视频和抖音的区别)

  • iphonexr无法开机怎么办(iphonexr无法开机一直黑屏)

    iphonexr无法开机怎么办(iphonexr无法开机一直黑屏)

  • 扩列是什么意思(qq扩列是什么意思)

    扩列是什么意思(qq扩列是什么意思)

  • 怎么用抖音视频做锁屏(怎么用抖音视频的模板)

    怎么用抖音视频做锁屏(怎么用抖音视频的模板)

  • 腾讯地图如何看时速(腾讯地图如何看实景图)

    腾讯地图如何看时速(腾讯地图如何看实景图)

  • ios13啥时候可以更新(ios13什么时候出正式版)

    ios13啥时候可以更新(ios13什么时候出正式版)

  • 苹果6.5寸手机有多大(苹果6.5寸手机有多大图片)

    苹果6.5寸手机有多大(苹果6.5寸手机有多大图片)

  • 华为畅享9plus双摄怎么用(华为畅享9plus双清模式画面)

    华为畅享9plus双摄怎么用(华为畅享9plus双清模式画面)

  • wpsword怎么加链接(wps怎么放链接)

    wpsword怎么加链接(wps怎么放链接)

  • nova5pro耳机孔在哪里(nova5ipro耳机插口)

    nova5pro耳机孔在哪里(nova5ipro耳机插口)

  • 【语音算法】wav2vec系列原理和使用(语音处理算法)

    【语音算法】wav2vec系列原理和使用(语音处理算法)

  • 消费税的会计分局
  • 小规模纳税人增值税优惠政策
  • 化粪池合同书
  • 租赁合同印花税率
  • 进项税额在贷方怎么登明细账
  • 销售费用可以提取现金吗
  • 空调属于电子设备还是电气设备
  • 母子公司借款要交什么税
  • 纳税人销售自产门窗并负责安装
  • 员工上班期间应穿
  • 前年购买的设备怎么入账
  • 长期挂账应付款的审计
  • 将外购商品作为非货币性
  • 公司成立前购买的设备算个人还是公司
  • 诉讼财产保全保险费计算
  • 土地使用权作为固定资产的情况
  • 税控盘服务费怎么填写申报表
  • 公司持有的房产税
  • 出纳如何登账
  • 免征企业所得税的有哪些行业
  • 补贴收入需要缴纳增值税吗为什么
  • 消费税组成计税价格成本利润率
  • 劳务税在地税局开还是国税局
  • 增值税进项税抵扣规定
  • 雄安新区纳入综合考核
  • 统借统贷合同需要交印花税吗
  • 房地产开发企业取得的土地使用权用于建造
  • 多结转成本的会计分录
  • 苹果手机怎么看国行还是美版
  • 小规模纳税人主要缴纳
  • 公司+农户经营模式是什么意思
  • 收购发票哪一联做帐
  • 海康工业相机彩色改黑白设置
  • 销售返利计入什么费用
  • iframe嵌套页面点击里面的按钮
  • zendstudio怎么创建php项目
  • phpmailer 使用
  • php绘制图片
  • 数据库设计框架
  • 小规模纳税人开专票需要交税吗
  • 抄税的步骤
  • cp命令复制文件到另一个目录并改名
  • 计提本月房产税的纳税基数怎么算的
  • css设置背景图片填充
  • 如何减税降税
  • 怎么算长期合同
  • 非独立核算与独立核算
  • 独资企业和公司区别
  • 个税专项附加扣除标准2023
  • Oracle、MySQL和SqlServe三种数据库分页查询语句的区别介绍
  • 弥补以前年度亏损怎么算
  • 小规模增值税为负数怎么报税
  • 收到设计费属于什么业务类型
  • 个人所得税缴纳标准怎么计算
  • 车间杂工工资如何结算
  • 纳税评估补缴的增值税影响所得税吗
  • 学校收到政府补助的会计分录
  • 冲销预付账款怎么填记账凭证
  • 个人咨询服务费个税怎么算
  • 企业职工福利费支出包括哪些内容
  • 工程施工间接费用明细
  • mysql 更改密码
  • 重装系统要懂什么
  • surface 优惠
  • linux系统的安全机制有哪些
  • win7和xp文件共享
  • rotation 与vector3乘积关系
  • node_modules复制
  • jquery操作元素内容的方法
  • 有隐藏项怎么复制
  • javascript基础编程
  • android基础知识总结
  • unity每帧调用
  • android studio项目无法运行
  • python数据通信
  • 税务机关一案双查管理办法
  • 企业自建厂房在建工程会计账务处理
  • 江苏地税每月社保多少钱
  • 土地二次买卖
  • 新疆喀什泽普县教育局联系电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号