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()函数执行 才会将公式计算得到数据结果,这就是生成器的原理(核心思想): [注意事项]: ...
随机推荐
- java文件下载以及中文乱码解决
在客户端下载文件时替换下载文件的名称,但是当名称是中文时浏览器会出现乱码,解决代码如下: public org.springframework.http.ResponseEntity<Input ...
- 链接正常但IE浏览器无法显示网页的几种情况
一.感染病毒木马所致 这种情况往往表现在打开IE时,在IE界面的左下框里提示:正在打开网页,但一直无响应. 右击任务栏/任务管理器/进程,查看.如果CPU占用率100%,可以断定是感染了病毒,这时要查 ...
- [日常] Go语言圣经--包和文件-导入包习题
1.每个包都有一个全局唯一的导入路径 2.按照惯例,一个包的名字和包的导入路径的最后一个字段相同 练习 2.2: 写一个通用的单位转换程序,用类似cf程序的方式从命令行读取参数,如果缺省的话则是从标准 ...
- Elasticsearch Query DSL 整理总结(二)—— 要搞懂 Match Query,看这篇就够了
目录 引言 构建示例 match operator 参数 analyzer lenient 参数 Fuzziness fuzzniess 参数 什么是模糊搜索? Levenshtein Edit Di ...
- 如何调试JDK源代码并查看局部变量值
如下图: 按F5进入String.startsWith,如下: 点“Edit Source Lookup Path” 附加源代码,如下图: 附加上源代码后如下: 可以看到,当鼠标放在“prefix”上 ...
- 设计模式-生成器(Builder)
一.概念 将一个复杂对像的构建与它的表示分离,使得同样的构建过程创建不同的表示,又叫建造模式. 生成器模式的重心在于分离构建算法和具体的构造实现,从而使得构建算法可以重用.采用不同的构建实现,产生不 ...
- CSS计数器(序列数字字符自动递增)详解———张鑫旭
by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=4303 一.挖坟不可耻 ...
- python内置函数每日一学 -- all()
all(iterable) 官方文档解释: Return True if all elements of the iterable are true (or if the iterable is em ...
- 你不知道的JavasScript上篇·第五章·原型·上
1.[[Prototype]] JS中的对象有一个特殊的[[Prototype]]内置属性,其实就是对于其他对象的引用.几乎所有的对象在创建时这个属性都被赋予一个非空的值 (proto) var my ...
- 我正在参加 CSDN 2018 年博客之星评选,希望大家能支持我
我正在参加 CSDN 2018 年博客之星评选,希望大家能支持我 我是[No. 001]号,感谢大家宝贵的一票 ^_^/ 投票地址:https://bss.csdn.net/m/topic/blog_ ...