セクション 5. 章 3
single
チャレンジ:再帰的ファイル検索
メニューを表示するにはスワイプしてください
ネストされた辞書の操作
辞書は他の辞書を格納でき、ファイルシステムのような階層データの表現に便利。
- キーはファイル名またはフォルダー名
"file"はその項目がファイルであることを示す- ネストされた辞書はその項目がフォルダーであることを示す
items() を使ってキーと値のペアを反復処理。
1234567file_system = { 'home': {'resume.pdf': 'file', 'notes.txt': 'file'}, 'etc': {'config.yaml': 'file'} } for name, content in file_system.items(): print(name, '->', content)
値がフォルダーを表すかどうかを確認するには、isinstance(content, dict) を使用。
12345678910file_system = { 'home': {'resume.pdf': 'file'}, 'config.yaml': 'file' } for name, content in file_system.items(): if isinstance(content, dict): print(name, 'is a folder') else: print(name, 'is a file')
タスク
スワイプしてコーディングを開始
ネストされた辞書内で特定のファイルが存在するかを確認するには、再帰的な file_exists 関数を実装します。
items()を使って辞書をループ処理します。contentが'file'であり、nameがtargetと一致する場合はTrueを返します。contentがフォルダ(isinstance(content, dict)で判定)であれば、file_existsを再帰的に呼び出します。- 再帰呼び出しが
Trueを返した場合は、そのままTrueを返します。 - すべての階層を確認しても一致しない場合は、
Falseを返します。
解答
すべて明確でしたか?
フィードバックありがとうございます!
セクション 5. 章 3
single
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください