stack在python中是什么意思_python中的栈指的是什么
栈(stack)是一个项的有序集合,其中添加移除新项总发生在同一端。这一端通常称为“顶部”。与顶部对应的端称为“底部”。
就像图片所描述的,栈s=(a1,a2,…an-1,an)。最后入栈的是an,最先出栈的也是an。所以栈符合LIFO原则。
LIFO
LIFO,即后进先出的排序原则。它基于在集合内的时间长度做排序。较新的项靠近顶部,较旧的项靠近底部。栈的底部很重要,因为在栈中靠近底部的项是存储时间最长的。最近添加的项是最先会被移除的。
栈之所以重要是因为它能反转项的顺序。插入跟删除顺序相反。
最典型的例子就是每个 web 浏览器都有一个返回按钮。当你浏览网页时,这些网页被放置在一个栈中(实际是网页的网址)。你现在查看的网页在顶部,你第一个查看的网页在底部。如果按‘返回’按钮,将按相反的顺序浏览刚才的页面。
Python实现栈# 创建一个空的新栈。 它不需要参数,并返回一个空栈。
class Stack:
def __init__(self):
self.items = []
# 测试栈是否为空。不需要参数,并返回布尔值。
def isEmpty(self):
return self.items == []
# 将一个新项添加到栈的顶部。它需要 item 做参数并不返回任何内容。
def push(self, item):
self.items.append(item)
# 从栈中删除顶部项。它不需要参数并返回 item 。栈被修改。
def pop(self):
return self.items.pop()
# 从栈返回顶部项,但不会删除它。不需要参数。 不修改栈。
def peek(self):
return self.items[len(self.items)-1]
# 返回栈中的 item 数量。不需要参数,并返回一个整数。
def size(self):
return len(self.items)
将十进制数转换为任意进制数
知道了栈的基本操作就做一个小项目来练练手。将十进制数转换为任意进制数,其实最高也就十六进制(还有更高进制吗)。def baseConverter(n, base):
# n是输入的十进制数字,base为要转化的进制数
digits = '0123456789ABCDEF'
#创建一个新栈
s= Stack()
# 将每次计算所得的余数添加进栈
while n> 0:
rem = n % base
s.push(rem)
n = n // base
# 将余数倒序排列至新字符串
newString = ''
while not remstack.isEmpty():
newString = newString digits[remstack.pop()]
return newString
相关推荐:《Python教程》
stack在python中是什么意思_python中的栈指的是什么相关推荐
- python中函数的作用域_Python中的函数作用域
在python中,一个函数就是一个作用域 name = 'xiaoyafei' def change_name(): name = '肖亚飞' print('在change_name里的name:', ...
- python列表怎么写文件_python中以字典为元素的列表怎么写入文本文件
python如何将列表中的元素添加进字典纵然被命运的铁蹄狠狠践踏,也顽强地长出自己的根芽. 录入自己和另一个人的名字的汉语拼音简写,然后依据标识符中字母的数值两个人,一颗心,依偎的不是爱情而是那小温暖 ...
- python中赋值语句的作用_python中return可以使用赋值语句吗?
在python中,有各种不同类型的语句.一个python程序是由模块构成的;一个模块由一条或多条语句组成;每个语句由不同的表达式组成;表达式可以创建和操作对象.下面来看看python中的语句. 赋值语 ...
- python读取字典元素笔记_Python中列表、字典、元组数据结构的简单学习笔记
列表 列表是Python中最具灵活性的有序集合对象类型.与字符串不同的是,列表可以包含任何类型的对象:数字.字符串甚至其他列表.列表是可变对象,它支持原地修改的操作. Python的列表是: 任意对象 ...
- python中round函数参数_python中关于round函数的小坑
round函数很简单,对浮点数进行近似取值,保留几位小数.比如 >>> round(10.0/3, 2) 3.33 >>> round(20/7) 3 第一个参数是 ...
- python里的join方法_python中join()方法介绍
描述 Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串. 语法 join()方法语法: str . join ( sequence ) 参数 sequence -- ...
- python常用函数的用法_python中常用函数整理
1.map map是python内置的高阶函数,它接收一个函数和一个列表,函数依次作用在列表的每个元素上,返回一个可迭代map对象. class map(object):""&qu ...
- python中反斜杠_Python中的正斜杠/与反斜杠\
知识点: 1. "/"左倾斜是正斜杠,"\"右倾斜是反斜杠,可以记为:除号是正斜杠 2. 对于目录分隔符,Unix和Web用正斜杠/,Windows用反斜杠\. ...
- python中的元类_Python中的元类(metaclass)
提问者自称已经掌握了有关Python OOP编程中的各种概念,但始终觉得元类(metaclass)难以理解.他知道这肯定和自身有关,但仍然觉得不太明白,希望大家可以给出一些实际的例子和代码片段以帮助理 ...
- python中end 1 意思_python中“end=”是什么意思?_后端开发
c语言fopen函数的用法_后端开发 在c语言中可以使用"fopen()"函数打开一个文件,该函数用于打开一个文件,其语法是"open("file a" ...
最新文章
- Leangoo敏捷看板管理 6.3.8
- 算法----计算机程序设计之魂
- Linux下jetty报java.lang.OutOfMemoryError: PermGen space及Jetty内存配置调优解决方案
- jQuery Portamento 滑动定位
- android+studio2.1+是否不支持感染到了.0,Android studio 2.2.3 升级到2.3遇到的问题
- 淘宝宝贝类目怎么更换?
- 如何删除双系统中的ubuntu系统
- 管程(Moniter): 并发编程的基本心法
- cpuz测试分数天梯图_PC电脑桌面CPU天梯图2020 单路CPU性能排名
- 【software】常见流氓软件
- Git 版本控制的基本使用教程
- Android4.4监听耳机插入处理方法
- Prometheus+Alertmanager详细配置邮箱告警
- php中表格第一行不动,word表格行高拉不动怎么办
- 一个免费提供Linux相关ebook的站点
- 360和金山毒霸那个好?
- Cesium之b3dm格式
- 关于139邮箱的技术问题
- 小程序毕设作品之微信美食菜谱小程序毕业设计成品(5)任务书
- DirectX12 简单入门(一)