Udfordring: Rekursiv Filsøgning
Arbejde med indlejrede ordbøger
Ordbøger kan indeholde andre ordbøger, hvilket er nyttigt til at repræsentere hierarkiske data som et filsystem.
- Nøgler er fil- eller mappenavne;
"file"betyder, at elementet er en fil;- En indlejret ordbog betyder, at elementet er en mappe.
Brug items() til at iterere gennem nøgle–værdi-par.
1234567file_system = { "home": {"resume.pdf": "file", "notes.txt": "file"}, "etc": {"config.yaml": "file"} } for name, content in file_system.items(): print(name, "->", content)
Brug isinstance(content, dict) til at kontrollere, om en værdi repræsenterer en mappe:
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
For at kontrollere, om en bestemt fil eksisterer i et indlejret dictionary, implementeres en rekursiv file_exists-funktion:
- Gennemløb dictionaryen med
items(). - Hvis
contenter"file"ognamematchertarget, returnérTrue. - Hvis
contenter en mappe (isinstance(content, dict)), kaldfile_existsrekursivt. - Hvis det rekursive kald returnerer
True, videreførTrue. - Hvis intet matcher efter at have gennemgået alle niveauer, returnér
False.
Løsning
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Awesome!
Completion rate improved to 4.17
Udfordring: Rekursiv Filsøgning
Stryg for at vise menuen
Arbejde med indlejrede ordbøger
Ordbøger kan indeholde andre ordbøger, hvilket er nyttigt til at repræsentere hierarkiske data som et filsystem.
- Nøgler er fil- eller mappenavne;
"file"betyder, at elementet er en fil;- En indlejret ordbog betyder, at elementet er en mappe.
Brug items() til at iterere gennem nøgle–værdi-par.
1234567file_system = { "home": {"resume.pdf": "file", "notes.txt": "file"}, "etc": {"config.yaml": "file"} } for name, content in file_system.items(): print(name, "->", content)
Brug isinstance(content, dict) til at kontrollere, om en værdi repræsenterer en mappe:
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
For at kontrollere, om en bestemt fil eksisterer i et indlejret dictionary, implementeres en rekursiv file_exists-funktion:
- Gennemløb dictionaryen med
items(). - Hvis
contenter"file"ognamematchertarget, returnérTrue. - Hvis
contenter en mappe (isinstance(content, dict)), kaldfile_existsrekursivt. - Hvis det rekursive kald returnerer
True, videreførTrue. - Hvis intet matcher efter at have gennemgået alle niveauer, returnér
False.
Løsning
Tak for dine kommentarer!
single