Herausforderung: Rekursive Dateisuche
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')
Danke für Ihr Feedback!
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')
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
Danke für Ihr Feedback!
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen