当前位置:首页 > 教育培训 >

python 堆栈(deep learning with pytorch)

来源:原点资讯(www.yd166.com)时间:2023-06-19 19:08:36作者:YD166手机阅读>>

一、栈

栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。 栈(Stack)是限制插入和删除操作只能在一个位置进行的表,该位置是表的末端,称为栈的顶(top)。栈的基本操作有PUSH(入栈)和POP(出栈)。栈又被称为LIFO(后入先出)表。

二、栈的实现

class Stack(object): """ 栈的模拟实现 """ def __init__(self): self.stack=[] def isEmpty(self): return self.stack==[] def push(self,item): self.stack.append(item) def pop(self): if self.isEmpty(): raise IndexError,'pop from empty stack' return self.stack.pop() def peek(self): return self.stack[-1] def size(self): return len(self.stack)三、栈的应用

1、检查程序中成对的符号

程序的语法错误经常是由缺少一个符号造成的。可用栈来检查符号是否成对。做一个空栈,如果字符是开放符号('({[')则将其push栈中。如果符号是个闭合符号(')]}'),则当栈空时报错,对应'()}'的错误。否则,将栈pop,如果弹出的符号不是对应的开放符号,则报错,对应'(}'的错误。文件末尾,如果栈为空,则报错,对应'({}'的错误。

def match(i,j): opens='([{' closes=')]}' return opens.index(i)==closes.index(j) def syntaxChecker(string): stack=Stack() balanced=True for i in string: if i in '([{': stack.push(i) elif i in ')]}': if stack.isEmpty(): balanced=False break else: j=stack.pop() if not match(j,i): balanced=False break if not stack.isEmpty(): balanced=False return balanced

2、进制转换

十进制转换二进制:把十进制转成二进制一直分解至商数为0。从最底左边数字开始读,之后读右边的数字,从下读到上。

python 堆栈,deep learning with pytorch(1)

进制转化

def decimal_to_bin(dec): stack=Stack() cur=dec while cur>0: a=cur%2 cur=cur/2 stack.push(a) binstr='' while not stack.isEmpty(): binstr =str(stack.pop()) return binstr

3、后缀记法
后缀记法(postfix),使用一个栈,见到一个数时入栈,遇到一个运算符时就作用于从栈弹出的两个元素,将结果弹入栈中。
(7 8)/(3 2)可以写作7 8 3 2 /

python 堆栈,deep learning with pytorch(2)

后缀记法

def infixtoPostfix(infix): a={} a['*']=3 a['/']=3 a[' ']=2 a['-']=2 a['(']=1 stack=Stack() post='' for i in infix: if i not in a and i!=')': post =i elif i=='(': stack.push(i) elif i==')': top=stack.pop() while top!='(': post =top top=stack.pop() else: while not stack.isEmpty() and a[i]<=a[stack.peek()]: post =stack.pop() stack.push(i) while not stack.isEmpty(): post =stack.pop() return post def postfixExp(postfix): stack=Stack() postlist=postfix.split() for i in postlist: if i not in ' -*/': stack.push(i) else: a=stack.pop() b=stack.pop() result=math(i,b,a) stack.push(result) return stack.pop() def math(x,y,z): if x==' ': return float(y) float(z) if x=='-': return float(y)-float(z) if x=='*': return float(y)*float(z) if x=='/': return float(y)/float(z)

栏目热文

python中栈常用于什么(python中为什么要讲堆栈)

python中栈常用于什么(python中为什么要讲堆栈)

在Python中,数据结构是一种重要的概念,它是计算机科学中最基本的概念之一。Python中的数据结构用于存储和组织数据...

2023-06-19 19:34:39查看全文 >>

python堆栈教学视频

python堆栈教学视频

大家好,我是杨数Tos,这是《从零基础到大神》系列课程的第30篇文章,第二阶段的课程:Python基础知识:布尔值、堆栈...

2023-06-19 19:01:59查看全文 >>

python栈能用在什么场景(python中栈怎么使用)

python栈能用在什么场景(python中栈怎么使用)

栈栈的示意图1、什么是栈(stack)呢? 作为一个吃货,把“栈”想象是一摞迭在一起的大饼,在放饼的时候,需要自下而上一...

2023-06-19 18:52:41查看全文 >>

python全栈有什么用(Python全栈开发需要学什么)

python全栈有什么用(Python全栈开发需要学什么)

Python之所以成为最热门的全栈编程语言,可以归结于以下几个主要原因。首先,Python具有简单易学的语法和清晰优雅的...

2023-06-19 19:20:44查看全文 >>

什么叫python栈(python全栈要学什么)

什么叫python栈(python全栈要学什么)

究竟栈为何物栈是一种线性数据结构,用先进后出或者是后进先出的方式存储数据,栈中数据的插入删除操作都是在栈顶端进行。栈是一...

2023-06-19 18:53:38查看全文 >>

python中有堆栈概念吗

python中有堆栈概念吗

栈栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端(...

2023-06-19 18:55:24查看全文 >>

python的栈在哪个库(python全栈包括什么)

python的栈在哪个库(python全栈包括什么)

首先,我们要分清楚一些概念和他们之间的关系数组(array) 表(list) 链表(linked list) 数组链表(...

2023-06-19 18:47:42查看全文 >>

电焊机工作灯亮但不打火怎么回事(电焊机通电正常就不打火原因)

电焊机工作灯亮但不打火怎么回事(电焊机通电正常就不打火原因)

   每一台回流焊机在使用过程中,时间长都会出现某些故障,有时候个小小故障都得等工程师来处理,严重影响生产效率,下面晋力...

2023-06-19 19:19:00查看全文 >>

为什么我的建行卡被锁定(建行卡被锁定了怎么办要怎么解除)

为什么我的建行卡被锁定(建行卡被锁定了怎么办要怎么解除)

在今天得知学校可能会给下学期未返校的学生退住宿费,我就去看了一下学校给发的银行卡,因为学校要交的费用都是用这张卡来进行交...

2023-06-19 19:13:24查看全文 >>

建行卡被锁死了怎么办(建行卡被锁定了怎么办要怎么解除)

建行卡被锁死了怎么办(建行卡被锁定了怎么办要怎么解除)

我们在刷信用卡时,难免会遇上因为密码输错导致信用卡被锁的情况,锁卡不怕,重置一下就行了! 重置步骤: STEP 1:登...

2023-06-19 19:25:57查看全文 >>

文档排行