zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    12 购物车之一(用列表)
    centos7安装pycharm,并创建桌面快捷方式
    centos7安装xrdp
    centos7 安装gitlab
    mysql 新建用户和授权
    django项目连接mysql没有Mysqldb解决办法_使用pymysql代替
    selenium+python实现查询和下载文件
    Python3-使用Requests和正则表达式爬取猫眼Top100的数据
    python3-字典常用操作
    python3-列表常用操作
  • 原文地址:https://www.cnblogs.com/hankleo/p/10453047.html
Copyright © 2011-2022 走看看