キュー:特性を満たす->私たちの生活の中でチケットやセキュリティを購入するのと同じように、最初に、最初に
【注意】
キューの場合:Pythonにはカプセル化のための特定の関数があり、collectionsモジュールのdeque関数はキューオブジェクトを取得できます。
手順:
ステップ1:コレクションモジュールをインポートする
ステップ2:collections.deque()->キューオブジェクトを返す
ステップ3:キューオブジェクトを使用して、そのデポジットおよび取得関数を呼び出し、要件を完了します
キュー内のデータアクセスの特性を示します:ファーストイン、ファーストアウト
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()
# パスデータを結合する
queue.append(path)
# キューにデータがある限り、ループは続きます
whilelen(queue)!=0:
file_path=queue.popleft()
# ファイルを取得_パス内のすべての単語(ファイル、サブディレクトリ)
files_list=os.listdir(file_path)
# ループ処理ファイル_リストの各要素
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)
スタックおよびキューアクセスデータの特性をよりよく理解するために:
深度トラバーサルと幅トラバーサルのコード操作を作成しました。
このことから、マルチレベルディレクトリをトラバースする要件は、再帰的な操作なしで使用できることがわかります。
これの利点は次のとおりです。より多くのメモリリソースが節約されます
Recommended Posts