python第三十二课——队列
生活随笔
收集整理的這篇文章主要介紹了
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)
為了更好的理解棧和列隊存取數據的特點:
我們書寫了深度遍歷和廣度遍歷的代碼操作,
從中得知不使用遞歸操作也可以使用遍歷多層級目錄的需求,
這樣做的好處是:更加的節省內存資源
轉載于:https://www.cnblogs.com/hankleo/p/10453308.html
總結
以上是生活随笔為你收集整理的python第三十二课——队列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 看完源码记不住,是我记性太差了吗?
- 下一篇: Python元组tuple(不可变)