详细内容

python栈是什么意思?

栈是一种特殊的列表,栈内的元素只能通过列表的一端访问,这一端称为栈顶。栈被称为一种后入先出(LIFO,last-in-first-out)的数据结构。

由于栈具有后入先出的特点,所以任何不在栈顶的元素都无法访问。为了得到栈底的元素,必须先拿掉上面的元素。

对栈的两种主要操作是将一个元素压入栈和将一个元素弹出栈。入栈使用push()方法,出栈使用pop()方法。

另一个常用的操作是预览栈顶的元素。pop()方法虽然可以访问栈顶的元素,但是调用该方法后,栈顶元素也从栈中被永久性地删除了。peek()方法则只返回栈顶元素,而不删除它。

为了记录栈顶元素的位置,同时也为了标记哪里可以加入新元素,我们使用变量top,当向栈内压入元素时,该变量增大;从栈内弹出元素时,该变量减小。

push()、pop()和peek()是栈的3个主要方法,但是栈还有其他方法和属性。

stack通常的操作:Stack() 建立一个空的栈对象

push() 把一个元素添加到栈的最顶层

pop() 删除栈最顶层的元素,并返回这个元素

peek() 返回最顶层的元素,并不删除它

isEmpty() 判断栈是否为空

size() 返回栈中元素的个数

简单案例以及操作结果:

这里使用python的list对象模拟栈的实现:class Stack:

"""模拟栈"""

def __init__(self):

self.items = []

def isEmpty(self):

return len(self.items)==0

def push(self, item):

self.items.append(item)

def pop(self):

return self.items.pop()

def peek(self):

if not self.isEmpty():

return self.items[len(self.items)-1]

def size(self):

return len(self.items)

创建一个栈对象,并加入操作方法:s=Stack()

print(s.isEmpty())

s.push(4)

s.push('dog')

print(s.peek())

s.push(True)

print(s.size())

print(s.isEmpty())

s.push(8.4)

print(s.pop())

print(s.pop())

print(s.size())

相关推荐:《Python教程》

python中栈是什么意思_python栈是什么意思,相关推荐

  1. [转载] python中for语句用法_详解Python中for循环的使用_python

    参考链接: 在Python中将else条件语句与for循环一起使用 这篇文章主要介绍了Python中for循环的使用,来自于IBM官方网站技术文档,需要的朋友可以参考下 for 循环 本系列前面 &q ...

  2. python中for语句用法_详解Python中for循环的使用_python

    这篇文章主要介绍了Python中for循环的使用,来自于IBM官方网站技术文档,需要的朋友可以参考下 for 循环 本系列前面 "探索 Python,第 5 部分:用 Python 编程&q ...

  3. python中异或怎么算_python 异或运算的前提_异或运算公式

    Python基础(10)–数字-Python-第七城市 609x288 - 73KB - JPEG Python基础(10)--数字_资讯_突袭网 609x288 - 33KB - JPEG pyth ...

  4. python中的gui界面编程_python应用系列教程——python的GUI界面编程Tkinter全解

    全栈工程师开发手册 (作者:栾鹏) python的GUI界面编程,常用的几个python库包含如下: Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包 ...

  5. python中try...except的用法_python try...except语句、自定义异常、raise语句使用实例(异常处理的三种方法)...

    异常处理,在编程中是必不可少的.错误难免会发生,用户不可能完全按照开发者的意愿行事,也有一些不可预知的错误,如网络请求等. 而程序一旦遇到异常,就会被终止,并且由底层抛出错误栈,无法按照计划顺利执行. ...

  6. python中列表用什么表示_python中的列表

    1. 列表是什么,他可以用来做什么呢?当你存在这样的疑问,就往下看吧:) 列表是由一系列按特定顺序排列的元素组成的.在Python中,用[]来表示列表,并用逗号来分隔其中的元素. 我们可以创建包含字母 ...

  7. python中init函数详解_Python 中__init__函数以及参数self

    Java网站链接:Java全栈工程师 | 以实例驱动学习 | how2j.cn 1)class类包含: 类的属性:类中所涉及的变量 类的方法:类中函数 2) __init函数(方法) 1.带有两个下划 ...

  8. python中fact函数的定义_python里面的函数定义与使用

    python里面的函数定义与使用 ~什么是函数 !函数是一段具有特定功能的.可重用的语句组,是一种功能的抽象.一般函数表达特定功能. ~它的一般表示形式为: def 函数名(参数): 函数体 retu ...

  9. python中的递归函数是什么_Python中的递归函数是什么

    Python 递归函数 递归的特性: 1.调用自身函数 2.有一个结束条件 3.递归效率不高,可能会导致栈溢出(函数调用是通过栈这种数据结构实现的,每进入一个函数调用,栈就会增加一层栈帧,函数每返回, ...

最新文章

  1. Weblogic项目部署教程
  2. C++ Primer 5th笔记(chap 18 大型程序工具)捕获异常
  3. (2)把BlackBerry作为插件安装到已有的Eclipse中
  4. TIOBE 9 月编程语言:C++ 突起、Java 流行度下降
  5. Halcon Blob分析(二值化图像分割)
  6. 毕业三年,同学基本都辞职了,大部分人看完很有同感~
  7. 如何将 UbuntuServer 安全的升级
  8. go-mysql数据-查询--输入数据--实战2
  9. Ubuntu下安装wps2019步骤以及字体安装
  10. linux系统中怎么安装谷歌浏览器,linux怎么安装谷歌浏览器?
  11. PHPStorm安装UML绘图工具插件
  12. ks检验 matlab,KS检验
  13. 谈谈我对普通莫队和带修莫队的拙见
  14. win11解决右键卡顿
  15. 统计学中数据分析方法大全
  16. 音视频开发——概述(含TUTK demo iOS)
  17. 分布式数据库或成为新增量
  18. 微信小程序设置横竖屏
  19. 注意力机制QKV理解
  20. 使用springboot每日推送早安问候语到用户微信【部署篇】

热门文章

  1. GTX 2080TI TensorFlow GPU基准测试:2018年最佳GPU
  2. java 日期format字符串 dd 与 DD ,yy与YY,mm与MM
  3. 法学博士起诉抖音 与腾讯起诉抖音原因相同
  4. GitHub SSH免密登录
  5. CATIA三维设计教程:如何使用3D投影功能?
  6. Bzoj4197 寿司晚宴
  7. swift获取openuuid_Swift 获取应用相关信息
  8. 怎么裁剪视频时长?建议收藏这些方法
  9. Linux常用命令——lvcreate命令
  10. linux修改密码报错‘Authentication token manipulation error‘