Python基于list的append和pop方法实现堆栈与队列功能示例
作者:坏蛋是我 发布时间:2022-10-20 02:26:26
标签:Python,list,堆栈,队列
本文实例讲述了Python基于list的append和pop方法实现堆栈与队列功能。分享给大家供大家参考,具体如下:
#coding=utf8
'''''
堆栈:
堆栈是一个后进先出(LIFO)的数据结构。
在栈上"push"元素是个常用术语,意思是把一个对象添加到堆栈中。
删除一个元素,可以把它"pop"出堆栈。
队列:
队列是一种先进先出(FIFO)的数据类型。
新的元素通过"入队"的方式添加进队列的末尾,
"出对"就是从队列的头部删除。
'''
#创建列表
def creatList():
initList=[]
try:
while True:
#从键上输入元素
inputItem=raw_input(u"Enter item(输入quit结束输入):")
#当输入字符不是quit,把元素加入列表
#当输入字符是quit,结束输入
if inputItem!="quit":
initList.append(inputItem.strip())
else:
break
#返回输入列表
return initList
except Exception,e:
print "Create List Error:",e
#删除列表的第一个元素并返回删除元素
def popTheFirst(List):
try:
#判断列表中是否存在元素
#如果存在元素,删除并返回第一个元素
#如果不存在,给出提示信息
if len(List)>0:
return List.pop(0)
else:
print "The list is empty..."
except Exception,e:
print "pop the first item Error:",e
#删除列表的最后元素并返回删除元素
def popTheLast(List):
try:
#判断列表中是否存在元素
#如果存在元素,删除并返回最后元素
#如果不存在,给出提示信息
if len(List)>0:
#pop函数默认删除最后一个元素
return List.pop()
else:
print "The list is empty..."
except Exception,e:
print "pop the last item Error:",e
#调用creatList函数创建表
listOne=creatList()
#输出创建表信息
print "The init list :",listOne
#调用popTheFirst函数删除并返回第一个元素
theFirst=popTheFirst(listOne)
#输出当前表的第一个元素
print "The first item of list:",theFirst
#调用popTheFirst函数删除并返回最后一个元素
theLast=popTheLast(listOne)
#输出当前表的最后一个元素元素
print "The last item of list:",theLast
'''''
这里的listOne、theFirst、theLast都是全局变量
如果更改上述语句顺序会获取不到想要的结果。
'''
运行结果:
希望本文所述对大家Python程序设计有所帮助。


猜你喜欢
- Mac 安装 Python3.10 并且配置环境一、Python的安装访问官网:https://www.python.org/选择系统(Ma
- 本文实例讲述了在Python中模仿POST HTTP数据及带Cookie提交数据的实现方法,分享给大家供大家参考。具体实现方法如下:方法一如
- 根据不同配置文件调用不同的验证函数检查输入。可以根据需求更改验证函数的逻辑。def VerifyData(func):  
- 本文实例讲述了python简单程序读取串口信息的方法。分享给大家供大家参考。具体分析如下:这段代码需要调用serial模块,通过while循
- 前言一个非常神秘的魔术方法。这个方法非常不起眼,用途狭窄,我几乎从未注意过它,然而,当发现它可能是上述“定律”的唯一例外情况时,我认为值得再
- Js 的异步确实完美地解决了单线程的问题,但是同时也会带来许多问题。而且随着用的框架越来越多,越来越复杂,定位问题的难度也随之上升。不知为什
- tensorflow中对tensor对象进行像numpy数组一样便捷的操作是不可能的, 至少对1.2以及之前的版本而言。从issue上看到,
- 我们在选择一件商品的时候,会先了解一些相关的商品信息,根据自己的需求和情况再进行选择。这种现象也同样适用于找工作,筛选一个岗位的重要环节,就
- 1、用apt-get安装mysql#更新一下apt 仓库sudo apt-get update#安装mysql-servicesudo ap
- 遇到这么个需求:把图片按照定义的patchsize切块,然后按照z轴顺序叠放小块,如下图(仅考虑灰度图像)图片im,设size为(h,w),
- 参考Tensorflow Machine Leanrning Cookbooktf.ConfigProto()主要的作用是配置tf.Sess
- 在使用Celery统计每日访问数量的时候,发现一个任务会同时执行两次,发现同一时间内(1s内)竟然同时发送了两次任务,也就是同时产生了两个w
- 1、监控规划在创建监控项之前要尽量考虑清楚要监控什么,怎么监控,监控数据如何存储,监控数据如何展现,如何处理报警等。要进行监控的系统规划需要
- js代码: <script> window.onload = function(){ <PRE class=javascr
- 引言在这篇文章中,我将介绍如何使用YOLOv5构建一个佩戴安全帽检测和识别系统。这个系统可以实时检测图像上人物是否有未佩戴安全帽,并及时进行
- 一、Less/Scss变量换肤具体实现:1、初始化vue项目2、安装插件:npm install style-resources-loade
- 游标的使用提到游标这个词,人们想到的是在屏幕上一个闪动的方框,用以指示用户将要输入字符的位置。而在关系型数据库的SQL语言中,游标却有另外的
- 今天先聊一聊在windows/mac iOS系统下用venv搭建python轻量级虚拟环境的问题。使用venv搭建的虚拟环境同virtual
- 记录应用程序的操作日志可以使用数据库、文本文件、XML文件等。我这里介绍的是使用 XML 文件记录操作日志。我觉得使用 XML 记录操作日志
- 神经网络梯度下降法在详细了解梯度下降的算法之前,我们先看看相关的一些概念。1. 步长(Learning rate):步长决定了在梯度下降迭代