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)

原文地址:https://www.cnblogs.com/hankleo/p/10453047.html

时间: 2024-09-27 01:42:37

python第三十二课——栈的相关文章

第三十二课 二维数组及其定义 【项目1-2】

第三十二课  二维数组及其定义 项目一 [折腾二维数组] 创建一个5行4列的二维整型数组,通过初始化,为数组中的前两列的10个元素赋初值,然后: 通过键盘输入,使后两列的10个元素获得值: 按行序优先输出数组元素: 将所有元素值乘以3后保存在数组中: 按列序优先输出(输出的第一行是数组中的第一列--,其实输出的就是"转置"): 将数组"倒"着输出(即最后一行最后一列的最先输出,第0行第0列的最后输出): 输出数组中的所有偶数: 输出所有行列下标之和为3的倍数的元素值

2018-07-30 第三十二课

第三十二次课 shell编程(二) 目录 十五.shell中的函数 十六.shell中的数组 十七.告警系统需求分析 十八.告警系统主脚本 十九.告警系统配置文件 二十.告警系统监控项目 二十一.告警系统邮件引擎 二十二.运行告警系统 十五.shell中的函数 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字即可.定义函数必须要放在最前面.定义好的函数相当于是命令. 语法格式 //name属性定义了赋予函数的唯一名称.脚本中定义的每个函数

第三十二课、Qt中的文件操作

一.Qt中的IO操作 1.Qt中IO操作的处理方式 (1).Qt通过统一的接口简化了文件与外部设备的操作方式 (2).Qt中的文件被看做是一种特殊的外部设备 (3).Qt中的文件操作与外部设备操作相同 2.IO操作中的关键函数接口 注意:IO操作的本质:连续存储空间的数据读写 3.Qt中IO设备类型 (1).顺序存储设备:只能从头开始顺序读写数据,不能指定数据的读写位置(串口) (2).随机存储设备:可以定位到任意位置进行数据读写(seek function函数)(文件) 4.Qt中IO设备 的

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

大家如果看了前面两课,就知道Deferred的静态方法next(next_default)是用setTimeout实现的(有浏览器最小时钟间隔).但是实现这种异步操作,可以有很多种方法.JSDeferred中,针对老版本IE,以及标准浏览器都专门使用了一些方法来实现异步操作,提高异步操作的性能提速. 首先,我们先来看下针对老版本IE的提速. Deferred.next_faster_way_readystatechange = (location.protocol == "http:"

笨办法学Python(三十二)

习题 32: 循环和列表 现在你应该有能力写更有趣的程序出来了.如果你能一直跟得上,你应该已经看出将"if 语句"和"布尔表达式"结合起来可以让程序作出一些智能化的事情. 然而,我们的程序还需要能很快地完成重复的事情.这节习题中我们将使用 for-loop (for 循环)来创建和打印出各种各样的列表.在做的过程中,你会逐渐明白它们是怎么回事.现在我不会告诉你,你需要自己找到答案. 在你开始使用 for 循环之前,你需要在某个位置存放循环的结果.最好的方法是使用列表

python学习第十二课

memcache 介绍 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信. emcached缺乏认证以及安全管制,这代表应该将memcached服务器放置在防火墙后. 由于Redis只使用单核,而

python 学习第十二课

memcache 介绍 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信. emcached缺乏认证以及安全管制,这代表应该将memcached服务器放置在防火墙后. 由于Redis只使用单核,而

第三十四课 栈的概念及实现(上)

这种使用原生数组作为存储容器的栈也简称顺序栈. 添加Stack.h文件: 1 #ifndef STACK_H 2 #define STACK_H 3 4 #include "Object.h" 5 6 namespace DTLib 7 { 8 9 template < typename T > 10 class Stack : public Object 11 { 12 public: 13 virtual void push(const T& e) = 0; 1

第三十五课 栈的概念及实现(下)

自定义Test类,给出如下的测试程序: 1 #include <iostream> 2 #include "StaticStack.h" 3 4 using namespace std; 5 using namespace DTLib; 6 7 class Test : public Object 8 { 9 public: 10 Test() 11 { 12 cout << "Test()" << endl; 13 } 14 1