Avsnitt 5. Kapitel 3
single
Utmaning: Rekursiv Filsökning
Svep för att visa menyn
Arbeta med nästlade ordböcker
Ordböcker kan lagra andra ordböcker, vilket är användbart för att representera hierarkisk data som ett filsystem.
- Nycklar är fil- eller mappnamn;
"file"betyder att objektet är en fil;- En nästlad ordbok betyder att objektet är en mapp.
Använd items() för att iterera genom nyckel–värde-par.
1234567file_system = { 'home': {'resume.pdf': 'file', 'notes.txt': 'file'}, 'etc': {'config.yaml': 'file'} } for name, content in file_system.items(): print(name, '->', content)
Använd isinstance(content, dict) för att kontrollera om ett värde representerar en mapp:
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')
Uppgift
Svep för att börja koda
För att kontrollera om en specifik fil existerar i en nästlad ordbok, implementera en rekursiv file_exists-funktion:
- Iterera genom ordboken med
items(). - Om
contentär'file'ochnamematchartarget, returneraTrue. - Om
contentär en mapp (isinstance(content, dict)), anropafile_existsrekursivt. - Om det rekursiva anropet returnerar
True, vidarebefordraTrue. - Om inget matchar efter att alla nivåer har kontrollerats, returnera
False.
Lösning
Var allt tydligt?
Tack för dina kommentarer!
Avsnitt 5. Kapitel 3
single
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal