位置: IT常识 - 正文

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

编辑:rootadmin

推荐整理分享使用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)

  • 微博怎么群发私信给好友圈(微博怎么群发私信给关注的人)

    微博怎么群发私信给好友圈(微博怎么群发私信给关注的人)

  • 红米10x 4g版跑分是多少

    红米10x 4g版跑分是多少

  • 小米mix3月亮模式怎么开(小米mix3拍月亮怎么调参数)

    小米mix3月亮模式怎么开(小米mix3拍月亮怎么调参数)

  • vivos1是玻璃机身吗(vivos7是玻璃机身吗)

    vivos1是玻璃机身吗(vivos7是玻璃机身吗)

  • 域名已失效正在跳转(域名即将失效请记住)

    域名已失效正在跳转(域名即将失效请记住)

  • 传输网络主要是指哪些网(传输网络主要是指)

    传输网络主要是指哪些网(传输网络主要是指)

  • 国产屏幕和原装区别(国产屏幕和原装屏幕有什么区别苹果)

    国产屏幕和原装区别(国产屏幕和原装屏幕有什么区别苹果)

  • pr导出视频和音频为什么分开了(pr导出视频和音频)

    pr导出视频和音频为什么分开了(pr导出视频和音频)

  • qq关了设备锁还是要设备验证(qq关闭设备锁会对安全有影响吗)

    qq关了设备锁还是要设备验证(qq关闭设备锁会对安全有影响吗)

  • iphonexsmax长宽高多少cm(iphonexsmax的长宽高)

    iphonexsmax长宽高多少cm(iphonexsmax的长宽高)

  • 一加8什么时候上市(一加8什么时候上市的手机)

    一加8什么时候上市(一加8什么时候上市的手机)

  • e8-c家庭网关是百兆还是千兆(e8-c家庭网关设置)

    e8-c家庭网关是百兆还是千兆(e8-c家庭网关设置)

  • 爱剪辑有电脑版的吗(爱剪辑3.0电脑版)

    爱剪辑有电脑版的吗(爱剪辑3.0电脑版)

  • b-f1电池是什么手机(b-f1电池是什么型号)

    b-f1电池是什么手机(b-f1电池是什么型号)

  • 爱奇艺我的片段在哪里找(爱奇艺视频片段)

    爱奇艺我的片段在哪里找(爱奇艺视频片段)

  • 手机99新是什么意思(手机99新是二手吗)

    手机99新是什么意思(手机99新是二手吗)

  • 快手的连麦设置在哪(快手连麦设置门槛)

    快手的连麦设置在哪(快手连麦设置门槛)

  • 通过搜索微信号添加是什么意思(通过搜索微信号添加)

    通过搜索微信号添加是什么意思(通过搜索微信号添加)

  • 安卓系统更新怎么关闭(安卓系统更新怎么弄)

    安卓系统更新怎么关闭(安卓系统更新怎么弄)

  • 淘宝怎么清空可能认识的人(怎样清空淘宝所有记录)

    淘宝怎么清空可能认识的人(怎样清空淘宝所有记录)

  • p30是多少倍变焦(p30pro多少倍光学变焦)

    p30是多少倍变焦(p30pro多少倍光学变焦)

  • 【移动端聊天功能模板】Vue实现H5聊天系统,实现上下固定中间滚动布局,微信授权功能,自动滚动到底部【详细注释,一看就会】(移动有聊天室平台吗)

    【移动端聊天功能模板】Vue实现H5聊天系统,实现上下固定中间滚动布局,微信授权功能,自动滚动到底部【详细注释,一看就会】(移动有聊天室平台吗)

  • 由浅入深介绍 Python Websocket 编程(由浅入深英语怎么说)

    由浅入深介绍 Python Websocket 编程(由浅入深英语怎么说)

  • 工商年报纳税总额包括哪些税
  • 进项税额记哪方
  • 收到政府补助需要缴纳企业所得税吗
  • 企业除了增值税还有什么税
  • 购进货物用于在建工程要交增值税吗
  • 未开具发票负数的原因
  • 股东个人固定资产怎么查
  • 车船税重复交了怎么退怎么在网上完税?
  • 年报中纳税总额怎么填
  • 事业单位购入存货分录
  • 认可的发票验证怎么弄
  • 增值税普通发票税率
  • 个体工商户地税没有申报罚款多少
  • 普票冲红可以部分冲红吗
  • 印花税计税金额怎么算
  • 没有道路许可证的车子怎么处罚
  • 货物返利怎么做分录
  • 企业空气检测费应该计入什么会计科目核算?
  • 4s店 监管
  • 店铺员工证费用计入什么科目?
  • 事业单位固定资产盘盈账务处理
  • vmware11安装win10
  • 如何配置无线路由器参数
  • php字符串操作函数
  • 先开票后发货开票时确认收入
  • 无形资产计价原则正确的是
  • 常用的php操作mysql的函数有哪些
  • vue+
  • 上月未结账本月不能操作任何业务
  • 详解php处理字符的方法
  • 利息支出属于成本项目吗
  • vue创建项目后开始写的步骤
  • javaweb实例教程
  • linux扫描命令
  • 自费出版违法吗
  • 增值税附加税的计算基数
  • 接受非货币性资产投资会计处理
  • 增值税年末留底
  • python 顺序
  • 电子承兑提示付款提前几天
  • 抵扣的税可以退掉么?
  • 计提持有至到期债券投资的利息
  • PostgreSQL管理工具phpPgAdmin入门指南
  • mysql默认值怎么设置
  • 报销发票啥意思
  • 购买电脑固定资产折旧怎么算
  • 饭店房屋的租赁合同范本
  • 购买税控盘的费用怎么抵减
  • 冲暂估的差异放在哪里
  • 多计提的税费怎么处理
  • 职工福利费无发放原因
  • 资产减值哪些资产
  • 预支报销怎么做账
  • 融资费用包括什么?
  • 当月发票未到怎么做账
  • 技术转让要交所得税吗
  • 企业项目贷款所需资料
  • 新建公司需要什么
  • mysql数据库完全备份
  • xp系统怎么删除系统
  • win10系统如何添加隐藏wifi
  • executor进程
  • win8 开机
  • macos10.8下载
  • 如果在一个命令行上输入和执行多条命令
  • 双系统怎么转移文件
  • linux的复制
  • linux常用的帮助命令
  • nodejs解析路径
  • tensorflow for
  • node.js介绍
  • 教你用纸折一只会跳的小兔子,非常好玩,小朋友都喜欢
  • androidstudio手机编程软件
  • jquery实现点击按钮
  • js中的面向对象
  • 为什么要征收城乡土地
  • 粮仓计算公式
  • 长春税务局待遇如何
  • 小规模印花税2023减半吗
  • 收购晾晒烟叶,支付价款20万元,支付价外补贴2万元
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设