1. 队列:满足特点 --> 先进先出,类似于我们生活中的买票、安检
  2.  
  3. 【注意】
  4.  
  5. 对于队列而言:python中有为其封装特定的函数,在collections模块中的deque函数就可以获取一个队列对象;
  6.  
  7. 操作步骤:
  8.  
  9. 步骤一:导入collections模块
  10.  
  11. 步骤二:collections.deque() --> 返回队列对象
  12.  
  13. 步骤三:使用队列对象调用其存和取的函数,完成需求
  14.  
  15. 演示队列存取数据的特点:先进先出
  1. import collections
  2.  
  3. #获取队列对象:deque()
  4. queue=collections.deque()
  5. print(queue,type(queue))
  6.  
  7. #向队列中逾加数据:进队操作
  8. queue.append('A')
  9. print(queue)
  10.  
  11. queue.append('B')
  12. print(queue)
  13.  
  14. queue.append('C')
  15. print(queue)
  16.  
  17. #将队列中的数据弹出:出队操作
  18. obj=queue.popleft()
  19. print('弹出:'+obj)
  20.  
  21. obj=queue.popleft()
  22. print('弹出:'+obj)
  23.  
  24. obj=queue.popleft()
  25. print('弹出:'+obj)
  26.  
  27. '''
  28. 模拟使用队列结构实现遍历目录之广度遍历
  29. '''
  30. import collections,os
  31. #自定义函数:实现遍历多目录层级操作(广度遍历)
  32. def getAllFileQU(path):
  33. #获取一个队列
  34. queue=collections.deque()
  35. #将path数据进队
  36. queue.append(path)
  37. #只要queue中还有数据,循环就继续
  38. while len(queue)!=0:
  39. file_path=queue.popleft()
  40. #获取file_path中所有字内容(文件、子目录)
  41. files_list=os.listdir(file_path)
  42. #循环处理file_list中的每一个元素
  43. for file in files_list:
  44. #还原其绝对路径值
  45. fileAbsPath=os.path.join(file_path,file)
  46. #判断是文件还是目录,操作和深度遍历一样
  47. if os.path.isfile(fileAbsPath):
  48. print('文件:'+file)
  49. else:
  50. print('目录:'+file)
  51. queue.append(fileAbsPath)
  52.  
  53. path=r'test.txt'
  54. getAllFileQU(path)
  1.  
  2. 为了更好的理解栈和列队存取数据的特点:
  3.  
  4. 我们书写了深度遍历和广度遍历的代码操作,
  5.  
  6. 从中得知不使用递归操作也可以使用遍历多层级目录的需求,
  7.  
  8. 这样做的好处是:更加的节省内存资源

python第三十二课——队列的更多相关文章

  1. python第三十二课——栈

    栈:满足特点 --> 先进后出,类似于我们生活中的子弹夹 [注意] 对于栈结构而言:python中没有为其封装特定的函数,我们可以使用list(列表)来模拟栈的特点 使用list对象来模拟栈结构 ...

  2. NeHe OpenGL教程 第三十二课:拾取游戏

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  3. python第三十九课——面向对象(二)之初始化属性

    设计Car类,初始化属性speed,提供一个run函数 import time class Car: def __init__(self,speed): self.speed=speed #将Road ...

  4. python第三十九课——面向对象(二)之设计类

    1.设计类class 车: #属性 颜色 = red 品牌 = "BMW" 车牌 = "沪A88888" #函数 行驶(): 停止(): 2.实例化车对象 ca ...

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

    大家如果看了前面两课,就知道Deferred的静态方法next(next_default)是用setTimeout实现的(有浏览器最小时钟间隔).但是实现这种异步操作,可以有很多种方法.JSDefer ...

  6. python第三十八课——面向对象(一)

    1.面向对象:(思想) 面向:看.关注.瞅 对象:个体.实体.实例.结果单词:object在python中一些皆对象 面向过程:(思想) 面向:看.关注.瞅 过程:经过.经历.从头到尾 使用一些生活中 ...

  7. Python学习第十二课——json&pickle&XML模块&OS模块

    json模块 import json dic={'name':'hanhan'} i=8 s='hello' l=[11,22] data=json.dumps(dic) #json.dumps() ...

  8. 潭州课堂25班:Ph201805201 django 项目 第三十二课 后台站点管理(课堂笔记)

    一.后台站点模版抽取 1.获取静态站点模版 可以使用git clone到本地 git clone https://github.com/almasaeed2010/AdminLTE.git 也可以在g ...

  9. python第三十五课——生成器

    1.生成器: 什么是生成器? 它内部封装了一套公式/算法,只有等到需要调用/执行数据时 --> next()函数执行 才会将公式计算得到数据结果,这就是生成器的原理(核心思想): [注意事项]: ...

随机推荐

  1. java文件下载以及中文乱码解决

    在客户端下载文件时替换下载文件的名称,但是当名称是中文时浏览器会出现乱码,解决代码如下: public org.springframework.http.ResponseEntity<Input ...

  2. 链接正常但IE浏览器无法显示网页的几种情况

    一.感染病毒木马所致 这种情况往往表现在打开IE时,在IE界面的左下框里提示:正在打开网页,但一直无响应. 右击任务栏/任务管理器/进程,查看.如果CPU占用率100%,可以断定是感染了病毒,这时要查 ...

  3. [日常] Go语言圣经--包和文件-导入包习题

    1.每个包都有一个全局唯一的导入路径 2.按照惯例,一个包的名字和包的导入路径的最后一个字段相同 练习 2.2: 写一个通用的单位转换程序,用类似cf程序的方式从命令行读取参数,如果缺省的话则是从标准 ...

  4. Elasticsearch Query DSL 整理总结(二)—— 要搞懂 Match Query,看这篇就够了

    目录 引言 构建示例 match operator 参数 analyzer lenient 参数 Fuzziness fuzzniess 参数 什么是模糊搜索? Levenshtein Edit Di ...

  5. 如何调试JDK源代码并查看局部变量值

    如下图: 按F5进入String.startsWith,如下: 点“Edit Source Lookup Path” 附加源代码,如下图: 附加上源代码后如下: 可以看到,当鼠标放在“prefix”上 ...

  6. 设计模式-生成器(Builder)

     一.概念 将一个复杂对像的构建与它的表示分离,使得同样的构建过程创建不同的表示,又叫建造模式. 生成器模式的重心在于分离构建算法和具体的构造实现,从而使得构建算法可以重用.采用不同的构建实现,产生不 ...

  7. CSS计数器(序列数字字符自动递增)详解———张鑫旭

    by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=4303 一.挖坟不可耻 ...

  8. python内置函数每日一学 -- all()

    all(iterable) 官方文档解释: Return True if all elements of the iterable are true (or if the iterable is em ...

  9. 你不知道的JavasScript上篇·第五章·原型·上

    1.[[Prototype]] JS中的对象有一个特殊的[[Prototype]]内置属性,其实就是对于其他对象的引用.几乎所有的对象在创建时这个属性都被赋予一个非空的值 (proto) var my ...

  10. 我正在参加 CSDN 2018 年博客之星评选,希望大家能支持我

    我正在参加 CSDN 2018 年博客之星评选,希望大家能支持我 我是[No. 001]号,感谢大家宝贵的一票 ^_^/ 投票地址:https://bss.csdn.net/m/topic/blog_ ...