python第三十二课——栈
Posted Hank
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python第三十二课——栈相关的知识,希望对你有一定的参考价值。
栈:满足特点 --> 先进后出,类似于我们生活中的子弹夹
【注意】
对于栈结构而言:python中没有为其封装特定的函数,我们可以使用list(列表)来模拟栈的特点
使用list对象来模拟栈结构存取数据的特点:先进后出
# 定义一个列表对象,stack(变量名、引用名) stack=[] # 向栈中添加数据(模拟压栈) stack.append(‘A‘) print(stack) stack.append(‘B‘) print(stack) stack.append(‘C‘) print(stack) # 将栈中的数据弹出(模拟弹出) obj=stack.pop() print(‘弹出:‘+obj) obj=stack.pop() print(‘弹出:‘+obj) obj=stack.pop() print(‘弹出:‘+obj)
模拟栈结构特点实现目录遍历之深度遍历
import os #自定义函数:实现深度遍历目录层级的操作 def getAllFileST(path): #定义一个列表 lt=[] #将path(字符串、绝对路径)压栈 lt.append(path) #根据lt的长度来决定循环执行的次数 while len(lt)!=0: #将lt中的数据弹栈 file_path=lt.pop() #得到file_path中的字内容(文件、子目录)以列表的形式返回 file_list=os.listdir(file_path) #循环处理file_list for file in file_list: #将其中的每个元素还原成为绝对路径值 fileAbsPath=os.path.join(file_path,file) ‘‘‘ 判断是文件还是目录? 如果是文件,直接打印其文件名即可 如果是目录,先打印其目录然后在将其压栈 ‘‘‘ if os.path.isfile(fileAbsPath): print(‘文件:‘+file) else: print(‘目录:‘+file) lt.append(fileAbsPath) p=r‘a.txt‘ getAllFileST(p)
以上是关于python第三十二课——栈的主要内容,如果未能解决你的问题,请参考以下文章
ParisGabriel:Python全栈工程师(0基础到精通)教程 第二十二课(迭代器字节串)