栈:满足特点 --> 先进后出,类似于我们生活中的子弹夹

【注意】

对于栈结构而言: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第三十二课——栈的更多相关文章

  1. python第三十二课——队列

    队列:满足特点 --> 先进先出,类似于我们生活中的买票.安检 [注意] 对于队列而言:python中有为其封装特定的函数,在collections模块中的deque函数就可以获取一个队列对象; ...

  2. NeHe OpenGL教程 第三十二课:拾取游戏

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  3. python第三十九课——面向对象(二)之初始化属性

    设计Car类,初始化属性speed,提供一个run函数 import time class Car: def __init__(self,speed): self.speed=speed #将Road ...

  4. python第三十九课——面向对象(二)之设计类

    1.设计类class 车: #属性 颜色 = red 品牌 = "BMW" 车牌 = "沪A88888" #函数 行驶(): 停止(): 2.实例化车对象 ca ...

  5. 第三十二课:JSDeferred的性能提速

    大家如果看了前面两课,就知道Deferred的静态方法next(next_default)是用setTimeout实现的(有浏览器最小时钟间隔).但是实现这种异步操作,可以有很多种方法.JSDefer ...

  6. python第三十八课——面向对象(一)

    1.面向对象:(思想) 面向:看.关注.瞅 对象:个体.实体.实例.结果单词:object在python中一些皆对象 面向过程:(思想) 面向:看.关注.瞅 过程:经过.经历.从头到尾 使用一些生活中 ...

  7. Python学习第十二课——json&pickle&XML模块&OS模块

    json模块 import json dic={'name':'hanhan'} i=8 s='hello' l=[11,22] data=json.dumps(dic) #json.dumps() ...

  8. 潭州课堂25班:Ph201805201 django 项目 第三十二课 后台站点管理(课堂笔记)

    一.后台站点模版抽取 1.获取静态站点模版 可以使用git clone到本地 git clone https://github.com/almasaeed2010/AdminLTE.git 也可以在g ...

  9. python第三十五课——生成器

    1.生成器: 什么是生成器? 它内部封装了一套公式/算法,只有等到需要调用/执行数据时 --> next()函数执行 才会将公式计算得到数据结果,这就是生成器的原理(核心思想): [注意事项]: ...

随机推荐

  1. MVC会员注销功能Cookie的应用

    我们实现了<MVC应用程序实现会员登录功能>http://www.cnblogs.com/insus/p/3466512.html 有登录就会有注销功能.此次Insus.NET练习一个MV ...

  2. winform窗体 小程序【进程】

    进程 一个应用程序就是一个进程,我的理解是,只要是打开应用程序,就会创建进程. 在.NET框架在using.System.Diagnostics名称空间中,有一个类Process,用来创建一个新的进程 ...

  3. CAS实现的单点登录系统

    单点登录(single sign on ),简称SSO. 纯属学习用,对来自网络的部分如果侵害了您的权力,请联系我.QQ:262800095 SSO的定义是在多个应用系统中,用户只需要登录一次就可以访 ...

  4. git撤销提交(commit)

    我们知道Git有三大区(工作区.暂存区.版本库)以及几个状态(untracked.unstaged.uncommited) 一.简介 Git 保存的不是文件的变化或者差异,而是一系列不同时刻的文件快照 ...

  5. centos7: ifconfig出现command not found解决办法

    问题 说下我linux配置情况,不一样的可以选择借鉴我的办法. 在虚拟机中以最小化方式安装centos7,ifconfig命令无效,而且在sbin目录中没有ifconfig文件. 原因 这是因为cen ...

  6. Java - "JUC"之Condition源码解析

    Java多线程系列--“JUC锁”06之 Condition条件 概要 前面对JUC包中的锁的原理进行了介绍,本章会JUC中对与锁经常配合使用的Condition进行介绍,内容包括:Condition ...

  7. 【14】代理模式(Proxy Pattern)

    一.引言 在软件开发过程中,有些对象有时候会由于网络或其他的障碍,以至于不能够或者不能直接访问到这些对象,如果直接访问对象给系统带来不必要的复杂性.这时候可以在客户端和目标对象之间增加一层中间层,让代 ...

  8. eclipse java web项目经常自动调试进入debug模式

    今天在运行Javaweb项目时,程序运行运行着就自动调试进入ThreadpoolExecutor,看着非常影响心情.最后在网上搜解决方法最后找到原因,解决方法如下. Window——>Prefe ...

  9. 安卓基础之Activity的四种启动模式

    Activity的四种启动模式   Activity的启动模式在清单文件中配置: <activity ... activity:lauchMode:"..."; //有四种模 ...

  10. [Android] 实现简单的相机程序

    好久没写了,有些东西做过都快忘了,赶紧记一下. 现在来实现一个简单的相机程序. 原文地址http://www.cnblogs.com/rossoneri/p/4246134.html 当然需要的话可以 ...