python第三十二课——队列
生活随笔
收集整理的這篇文章主要介紹了
python第三十二课——队列
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
隊(duì)列:滿足特點(diǎn) --> 先進(jìn)先出,類似于我們生活中的買票、安檢
【注意】
對(duì)于隊(duì)列而言:python中有為其封裝特定的函數(shù),在collections模塊中的deque函數(shù)就可以獲取一個(gè)隊(duì)列對(duì)象;
操作步驟:
步驟一:導(dǎo)入collections模塊
步驟二:collections.deque() --> 返回隊(duì)列對(duì)象
步驟三:使用隊(duì)列對(duì)象調(diào)用其存和取的函數(shù),完成需求
演示隊(duì)列存取數(shù)據(jù)的特點(diǎn):先進(jìn)先出 import collections#獲取隊(duì)列對(duì)象:deque() queue=collections.deque() print(queue,type(queue))#向隊(duì)列中逾加數(shù)據(jù):進(jìn)隊(duì)操作 queue.append('A') print(queue)queue.append('B') print(queue)queue.append('C') print(queue)#將隊(duì)列中的數(shù)據(jù)彈出:出隊(duì)操作 obj=queue.popleft() print('彈出:'+obj)obj=queue.popleft() print('彈出:'+obj)obj=queue.popleft() print('彈出:'+obj)''' 模擬使用隊(duì)列結(jié)構(gòu)實(shí)現(xiàn)遍歷目錄之廣度遍歷 ''' import collections,os #自定義函數(shù):實(shí)現(xiàn)遍歷多目錄層級(jí)操作(廣度遍歷) def getAllFileQU(path):#獲取一個(gè)隊(duì)列queue=collections.deque()#將path數(shù)據(jù)進(jìn)隊(duì) queue.append(path)#只要queue中還有數(shù)據(jù),循環(huán)就繼續(xù)while len(queue)!=0:file_path=queue.popleft()#獲取file_path中所有字內(nèi)容(文件、子目錄)files_list=os.listdir(file_path)#循環(huán)處理file_list中的每一個(gè)元素for file in files_list:#還原其絕對(duì)路徑值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)
為了更好的理解棧和列隊(duì)存取數(shù)據(jù)的特點(diǎn):
我們書(shū)寫了深度遍歷和廣度遍歷的代碼操作,
從中得知不使用遞歸操作也可以使用遍歷多層級(jí)目錄的需求,
這樣做的好處是:更加的節(jié)省內(nèi)存資源
轉(zhuǎn)載于:https://www.cnblogs.com/hankleo/p/10453308.html
總結(jié)
以上是生活随笔為你收集整理的python第三十二课——队列的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 看完源码记不住,是我记性太差了吗?
- 下一篇: SpringBoot 如何生成接口文档,