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()函数执行 才会将公式计算得到数据结果,这就是生成器的原理(核心思想): [注意事项]: ...
随机推荐
- C#快速读写文件
一.写入 //在应用程序当前目录下的File1.txt文件中追加文件内容,如果文件不存在就创建,默认编码 File.AppendAllText("File1.txt", " ...
- java通过url在线预览Word、excel、ppt、pdf、txt文档
java通过url在线预览Word.excel.ppt.pdf.txt文档中的内容[只获得其中的文字] 在页面上显示各种文档中的内容.在servlet中的逻辑 word: BufferedInputS ...
- 【C#数据结构系列】线性表
一:线性表 1.1:定义:零个或多个数据元素的有限序列 1.2: 线性表元素个数n定义为线性表的长度,n = 0称为空表,i 为数据元素ai在线性表中的位序. 1.3:满足线性表的条件:(1):有序, ...
- 阿里数据源Druid配置详情
<bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-m ...
- django 参考
1. 路由系统 https://www.cnblogs.com/maple-shaw/articles/9282718.html 2. 视图 https://www.cnblogs.com/maple ...
- JS touch
一个月没写博客了,感觉空唠唠的,有多好想写的,今天全都给补上吧,记录最近这个月的收获 https://blog.csdn.net/sinat_19327991/article/details/7382 ...
- css3 flex弹性盒子布局梳理,打通任督二脉
挺早就接触了css的flex布局,深入使用也就是在近期移动端开发.老来多健忘,只能自己梳理一下知识点,当做温故知新吧. ,请原谅小白的才疏学浅,写的不到位的地方请指正. flex属性用于设置或检索弹性 ...
- form图片上传遇到错误
org.springframework.web.multipart.MultipartException: The current request is not a multipart request ...
- js-语言精粹-函数记忆
函数可以将先前操作的结果记录在某个对象里,从而避免无谓的重复运算.这种优化方式被称为记忆(memoization).JavaScript的对象和数组要实现这种优化是非常方便的. 比如说,我们想要一个递 ...
- CSS 简单归纳 -- 前端知识
CSS:cascading style sheets层叠样式表,用于美化页面 css的三种表现形式:1.行内样式(内嵌样式):结构的内部,即写在标签内的样式:写在标签的开始部分内部,style属性当中 ...