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
Can you explain how to add a new file or folder to this nested dictionary?
How can I recursively print all files and folders in this structure?
What does the output of these code samples look like?
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