Abschnitt 5. Kapitel 3
single
Herausforderung: Rekursive Dateisuche
Swipe um das Menü anzuzeigen
Arbeiten mit verschachtelten Dictionaries
Dictionaries können andere Dictionaries speichern, was nützlich ist, um hierarchische Daten wie ein Dateisystem darzustellen.
- Schlüssel sind Datei- oder Ordnernamen;
"file"bedeutet, dass das Element eine Datei ist;- Ein verschachteltes Dictionary bedeutet, dass das Element ein Ordner ist.
Verwenden von items(), um Schlüssel-Wert-Paare zu durchlaufen.
1234567file_system = { 'home': {'resume.pdf': 'file', 'notes.txt': 'file'}, 'etc': {'config.yaml': 'file'} } for name, content in file_system.items(): print(name, '->', content)
Verwendung von isinstance(content, dict), um zu prüfen, ob ein Wert einen Ordner darstellt:
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')
Aufgabe
Wischen, um mit dem Codieren zu beginnen
Um zu überprüfen, ob eine bestimmte Datei existiert in einem verschachtelten Dictionary, implementiere eine rekursive Funktion file_exists:
- Durchlaufe das Dictionary mit
items(). - Wenn
content'file'ist undnamemittargetübereinstimmt, gibTruezurück. - Wenn
contentein Ordner ist (isinstance(content, dict)), rufefile_existsrekursiv auf. - Gibt der rekursive Aufruf
Truezurück, gib ebenfallsTruezurück. - Wenn nach Überprüfung aller Ebenen keine Übereinstimmung gefunden wurde, gib
Falsezurück.
Lösung
War alles klar?
Danke für Ihr Feedback!
Abschnitt 5. Kapitel 3
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen