Python实现栈的方法


Posted in Python onMay 26, 2015

本文实例讲述了Python实现栈的方法。分享给大家供大家参考。具体实现方法如下:

#!/usr/bin/env python 
#定义一个列表来模拟栈 
stack = [] 
#进栈,调用列表的append()函数加到列表的末尾,strip()没有参数是去掉首尾的空格 
def pushit(): 
  stack.append(raw_input('Enter new string: ').strip()) 
#出栈,用到了pop()函数 
def popit(): 
  if len(stack) == 0: 
    print 'Cannot pop from an empty stack!' 
  else: 
    print 'Removed [', stack.pop(), ']' 
#编历栈 
def viewstack(): 
  print stack 
#CMDs是字典的使用 
CMDs = {'u': pushit, 'o': popit, 'v': viewstack} 
#pr为提示字符 
def showmenu(): 
  pr = """ 
  p(U)sh 
  p(O)p 
  (V)iew 
  (Q)uit 
    Enter choice: """ 
  while True: 
    while True: 
      try: 
        #先用strip()去掉空格,再把第一个字符转换成小写的 
        choice = raw_input(pr).strip()[0].lower() 
      except (EOFError, KeyboardInterrupt, IndexError): 
        choice = 'q' 
      print '\nYou picked: [%s]' % choice 
      if choice not in 'uovq': 
        print 'Invalid option, try again' 
      else: 
        break 
#CMDs[]根据输入的choice从字典中对应相应的value,比如说输入u,从字典中得到value为pushit,执行pushit()进栈操作 
    if choice == 'q': 
      break 
    CMDs[choice]() 
#判断是否是从本文件进入,而不是被调用 
if __name__ == '__main__': 
  showmenu()

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Python代理抓取并验证使用多线程实现
May 03 Python
Python中用max()方法求最大值的介绍
May 15 Python
基于python元祖与字典与集合的粗浅认识
Aug 23 Python
python+matplotlib绘制旋转椭圆实例代码
Jan 12 Python
Python使用Dijkstra算法实现求解图中最短路径距离问题详解
May 16 Python
Python学习小技巧总结
Jun 10 Python
linux查找当前python解释器的位置方法
Feb 20 Python
Python3 itchat实现微信定时发送群消息的实例代码
Jul 12 Python
python matplotlib折线图样式实现过程
Nov 04 Python
Anaconda3中的Jupyter notebook添加目录插件的实现
May 18 Python
基于django2.2连oracle11g解决版本冲突的问题
Jul 02 Python
Python使用Web框架Flask开发项目
Jun 01 Python
Python实现二分查找算法实例
May 26 #Python
Django发送html邮件的方法
May 26 #Python
Python使用xlrd模块操作Excel数据导入的方法
May 26 #Python
django实现分页的方法
May 26 #Python
Django imgareaselect手动剪切头像实现方法
May 26 #Python
Django实现图片文字同时提交的方法
May 26 #Python
Python实现的简单算术游戏实例
May 26 #Python
You might like
用PHP+java实现自动新闻滚动窗口
2006/10/09 PHP
PHP中通过ADO调用Access数据库的方法测试不通过
2006/12/31 PHP
PHP系统命令函数使用分析
2013/07/05 PHP
JQuery中属性过滤选择器用法实例分析
2015/05/18 Javascript
原生js和jQuery实现淡入淡出轮播效果
2015/12/25 Javascript
在网页中插入百度地图的步骤详解
2016/12/02 Javascript
javascript中闭包概念与用法深入理解
2016/12/15 Javascript
jQuery Ajax全解析
2017/02/13 Javascript
很棒的vue弹窗组件
2017/05/24 Javascript
基于Vue2x实现响应式自适应轮播组件插件VueSliderShow功能
2018/05/16 Javascript
详解Vue结合后台的列表增删改案例
2018/08/21 Javascript
解决Vue.js由于延时显示了{{message}}引用界面的问题
2018/08/25 Javascript
vue 利用路由守卫判断是否登录的方法
2018/09/29 Javascript
[07:43]《辉夜杯》公开赛晋级外卡赛战队—TRG训练生活探秘
2015/12/11 DOTA
在Python中使用itertools模块中的组合函数的教程
2015/04/13 Python
python通过函数属性实现全局变量的方法
2015/05/16 Python
Python中set与frozenset方法和区别详解
2016/05/23 Python
再谈Python中的字符串与字符编码(推荐)
2016/12/14 Python
python如何获取服务器硬件信息
2017/05/11 Python
详解Python pygame安装过程笔记
2017/06/05 Python
python存储16bit和32bit图像的实例
2018/12/05 Python
简单了解如何封装自己的Python包
2020/07/08 Python
HTML5学习笔记之html5与传统html区别
2016/01/06 HTML / CSS
JD Sports芬兰:英国领先的运动鞋和运动服饰零售商
2018/11/16 全球购物
Kendra Scott官网:美国领先的时尚配饰品牌
2020/10/22 全球购物
安德玛菲律宾官网:Under Armour菲律宾
2020/07/28 全球购物
求最大连续递增数字串(如"ads3sl456789DF3456ld345AA"中的"456789")
2015/09/11 面试题
说一下Linux下有关用户和组管理的命令
2016/01/04 面试题
项目合作意向书范本
2014/04/01 职场文书
党员教师一句话承诺
2014/05/30 职场文书
十佳标兵事迹材料
2014/08/18 职场文书
教师自我剖析材料范文
2014/09/30 职场文书
红歌会主持词
2015/07/02 职场文书
干部培训简讯
2015/07/20 职场文书
营销策划分析:怎么策划才能更好销量产品?
2019/09/04 职场文书
详解GaussDB for MySQL性能优化
2021/05/18 MySQL