python第三十二课——队列
队列:满足特点 --> 先进先出,类似于我们生活中的买票、安检 【注意】 对于队列而言:python中有为其封装特定的函数,在collections模块中的deque函数就可以获取一个队列对象; 操作步骤: 步骤一:导入collections模块 步骤二:collections.deque() --> 返回队列对象 步骤三:使用队列对象调用其存和取的函数,完成需求 演示队列存取数据的特点:先进先出
import collections #获取队列对象:deque()
queue=collections.deque()
print(queue,type(queue)) #向队列中逾加数据:进队操作
queue.append('A')
print(queue) queue.append('B')
print(queue) queue.append('C')
print(queue) #将队列中的数据弹出:出队操作
obj=queue.popleft()
print('弹出:'+obj) obj=queue.popleft()
print('弹出:'+obj) obj=queue.popleft()
print('弹出:'+obj) '''
模拟使用队列结构实现遍历目录之广度遍历
'''
import collections,os
#自定义函数:实现遍历多目录层级操作(广度遍历)
def getAllFileQU(path):
#获取一个队列
queue=collections.deque()
#将path数据进队
queue.append(path)
#只要queue中还有数据,循环就继续
while len(queue)!=0:
file_path=queue.popleft()
#获取file_path中所有字内容(文件、子目录)
files_list=os.listdir(file_path)
#循环处理file_list中的每一个元素
for file in files_list:
#还原其绝对路径值
fileAbsPath=os.path.join(file_path,file)
#判断是文件还是目录,操作和深度遍历一样
if os.path.isfile(fileAbsPath):
print('文件:'+file)
else:
print('目录:'+file)
queue.append(fileAbsPath) path=r'test.txt'
getAllFileQU(path)
为了更好的理解栈和列队存取数据的特点: 我们书写了深度遍历和广度遍历的代码操作, 从中得知不使用递归操作也可以使用遍历多层级目录的需求, 这样做的好处是:更加的节省内存资源
python第三十二课——队列的更多相关文章
- python第三十二课——栈
栈:满足特点 --> 先进后出,类似于我们生活中的子弹夹 [注意] 对于栈结构而言:python中没有为其封装特定的函数,我们可以使用list(列表)来模拟栈的特点 使用list对象来模拟栈结构 ...
- NeHe OpenGL教程 第三十二课:拾取游戏
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- python第三十九课——面向对象(二)之初始化属性
设计Car类,初始化属性speed,提供一个run函数 import time class Car: def __init__(self,speed): self.speed=speed #将Road ...
- python第三十九课——面向对象(二)之设计类
1.设计类class 车: #属性 颜色 = red 品牌 = "BMW" 车牌 = "沪A88888" #函数 行驶(): 停止(): 2.实例化车对象 ca ...
- 第三十二课:JSDeferred的性能提速
大家如果看了前面两课,就知道Deferred的静态方法next(next_default)是用setTimeout实现的(有浏览器最小时钟间隔).但是实现这种异步操作,可以有很多种方法.JSDefer ...
- python第三十八课——面向对象(一)
1.面向对象:(思想) 面向:看.关注.瞅 对象:个体.实体.实例.结果单词:object在python中一些皆对象 面向过程:(思想) 面向:看.关注.瞅 过程:经过.经历.从头到尾 使用一些生活中 ...
- Python学习第十二课——json&pickle&XML模块&OS模块
json模块 import json dic={'name':'hanhan'} i=8 s='hello' l=[11,22] data=json.dumps(dic) #json.dumps() ...
- 潭州课堂25班:Ph201805201 django 项目 第三十二课 后台站点管理(课堂笔记)
一.后台站点模版抽取 1.获取静态站点模版 可以使用git clone到本地 git clone https://github.com/almasaeed2010/AdminLTE.git 也可以在g ...
- python第三十五课——生成器
1.生成器: 什么是生成器? 它内部封装了一套公式/算法,只有等到需要调用/执行数据时 --> next()函数执行 才会将公式计算得到数据结果,这就是生成器的原理(核心思想): [注意事项]: ...
随机推荐
- [转]微信小程序、微信公众号、H5之间相互跳转
本文转自:https://www.cnblogs.com/colorful-paopao1/p/8608609.html 转自慕课网 一.小程序和公众号 答案是:可以相互关联. 在微信公众号里可以添加 ...
- 乱糟unity整理
当Canvas上的UI元素变化时,会重新生成网格并向GPU发起绘图调用,从而显示UI.划分画布:1.每块画布上的元素都与其他画布的元素相隔离,使用?工具来切分画布?,从而解决ui的批处理问题.2.也可 ...
- C#+三层+会员管理系统源码
本打算上51aspx的 但是他们说我做的太简单..,那我还是拿出来共享给大家 源码下载地址 链接:http://pan.baidu.com/s/1boAwv2R 密码:ycrf 源码描述:一.源码 ...
- Hibernate自身一对多和多对多关系映射
一对多关系映射大家都明白,关系双方都一个含有对方多个引用,但自身一对多很多同学都不明白什么意思,那么首先我就说明一下什么是自身一对多,其实也很好理解,自身一对多就是自身含有本身的多个引用,例如新闻类别 ...
- JSON数据的各种操作
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.R ...
- 集合框架三(List和Set的补充(不加泛型))
List List存放的元素有序,可重复 List list = new ArrayList(); list.add("123"); list.add("456" ...
- 设计模式原则(7)--Composition&AggregationPrinciple(CARP)--合成&聚合复用原则
作者QQ:1095737364 QQ群:123300273 欢迎加入! 1.定义: 要尽量使用合成和聚合,尽量不要使用继承. 2.使用场景: 要正确的选择合成/复用和继承,必须透彻地理 ...
- Nginx部署入门
一.什么是Nginx? Nginx 是俄罗斯人编写的十分轻量级的 HTTP 服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个 IMAP/POP3 ...
- <Android 应用 之路> 一个类似今日头条的APP
简介 最近花了一两天的时间完成一个简易的新闻头条客户端的应用,引用到了SwipeRefreshLayout,CircleImageView,RxAndroid,Picasso,PhotoPicker等 ...
- 使用标准C读取文件遇到的结构体对齐问题及其解决办法
作者:朱金灿 来源:http://blog.csdn.net/clever101 同事使用标准C库读取文件,发现总是读取不对,让我帮忙看一下. 原来他定义了如下一个结构体: // 定义块的结构 typ ...