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教程》
以上是python中的栈指的是什么的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

在LAMP架构下整合Node.js或Python服务许多网站开发者都面临这样的问题:已有的LAMP(Linux Apache MySQL PHP)架构网站需要...

Linux终端中查看Python版本时遇到权限问题的解决方法当你在Linux终端中尝试查看Python的版本时,输入python...

使用Scapy爬虫时,管道持久化存储文件无法写入的原因探讨在学习使用Scapy爬虫进行数据抓取时,经常会遇到一�...

Python入门:沙漏图形绘制及输入校验本文将解决一个Python新手在沙漏图形绘制程序中遇到的变量定义问题。代码...

Python进程池处理并发TCP请求导致客户端卡死的解析在使用Python进行网络编程时,高效处理并发TCP请求至关重要。...

深入探讨Pythonfunctools.partial对象的查看方法在使用Python的functools.partial...

Python跨平台桌面应用开发库的选择许多Python开发者都希望开发出能够在Windows和Linux系统上都能运行的桌面应用程...

在使用Python的pandas库时,如何在两个结构不同的DataFrame之间进行整列复制是一个常见的问题。假设我们有两个Dat...
