Utmaning: Rekursiv Filsökning
Arbeta med nästlade ordböcker
Ordböcker kan lagra andra ordböcker, vilket är användbart för att representera hierarkisk data så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")
Swipe to start coding
För att kontrollera om en specifik fil finns 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
Tack för dina kommentarer!
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
Awesome!
Completion rate improved to 4.17
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 så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")
Swipe to start coding
För att kontrollera om en specifik fil finns 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
Tack för dina kommentarer!
single