Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Herausforderung: Rekursive Dateisuche | Rekursion und Lambda-Funktionen
Python-Funktionen-Tutorial

Swipe um das Menü anzuzeigen

book
Herausforderung: Rekursive Dateisuche

Arbeiten mit verschachtelten Dictionaries

In Python können Dictionaries andere Dictionaries enthalten. Dies ist nützlich, um hierarchische Strukturen wie ein Dateisystem darzustellen.

Um ein Dictionary zu durchlaufen:

Verwenden Sie items(), um alle Schlüssel-Wert-Paare zu iterieren:

123456789101112
file_system = { "home": { "resume.pdf": "file", "notes.txt": "file" }, "etc": { "config.yaml": "file" } } for name, content in file_system.items(): print(name, "->", content)
copy
  • Verwenden Sie isinstance(content, dict), um zu prüfen, ob ein Wert selbst ein Dictionary ist (d. h. ein Ordner und keine Datei):

123456789101112
file_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")
copy
Aufgabe

Swipe to start coding

Stellen Sie sich vor, Sie müssen überprüfen, ob eine bestimmte Datei existiert innerhalb einer verschachtelten Dictionary-Struktur, die ein Dateisystem repräsentiert. Implementieren Sie eine Funktion file_exists, die rekursiv durch Ordner (Dictionary-Objekte) navigiert und nach einer Datei (repräsentiert durch den String "file") sucht. Geben Sie True zurück, wenn die Datei gefunden wurde; andernfalls geben Sie False zurück.

  1. Verwenden Sie eine for-Schleife, um alle Elemente des file_system-Dictionaries mit der Methode items() zu durchlaufen. Dadurch werden der Schlüssel (name) und der Wert (content) abgerufen.
  2. Überprüfen Sie, ob content die Datei ist (also der String "file") und ob name mit target übereinstimmt.
  3. Wenn beide Bedingungen erfüllt sind, geben Sie True zurück, um anzuzeigen, dass die Datei gefunden wurde.
  4. Wenn content keine Datei ist, verwenden Sie die Funktion isinstance(), um zu prüfen, ob es sich bei content um einen Ordner handelt, indem Sie als zweites Argument dict übergeben.
  5. Wenn content ein Ordner ist, rufen Sie file_exists rekursiv auf, um die Suche dort fortzusetzen.
  6. Wenn der rekursive Aufruf True zurückgibt, geben Sie anschließend True zurück.
  7. Wenn keine Übereinstimmung in allen Ordnern und Dateien gefunden wird, geben Sie False zurück.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 2
Wir sind enttäuscht, dass etwas schief gelaufen ist. Was ist passiert?

Fragen Sie AI

expand
ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

book
Herausforderung: Rekursive Dateisuche

Arbeiten mit verschachtelten Dictionaries

In Python können Dictionaries andere Dictionaries enthalten. Dies ist nützlich, um hierarchische Strukturen wie ein Dateisystem darzustellen.

Um ein Dictionary zu durchlaufen:

Verwenden Sie items(), um alle Schlüssel-Wert-Paare zu iterieren:

123456789101112
file_system = { "home": { "resume.pdf": "file", "notes.txt": "file" }, "etc": { "config.yaml": "file" } } for name, content in file_system.items(): print(name, "->", content)
copy
  • Verwenden Sie isinstance(content, dict), um zu prüfen, ob ein Wert selbst ein Dictionary ist (d. h. ein Ordner und keine Datei):

123456789101112
file_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")
copy
Aufgabe

Swipe to start coding

Stellen Sie sich vor, Sie müssen überprüfen, ob eine bestimmte Datei existiert innerhalb einer verschachtelten Dictionary-Struktur, die ein Dateisystem repräsentiert. Implementieren Sie eine Funktion file_exists, die rekursiv durch Ordner (Dictionary-Objekte) navigiert und nach einer Datei (repräsentiert durch den String "file") sucht. Geben Sie True zurück, wenn die Datei gefunden wurde; andernfalls geben Sie False zurück.

  1. Verwenden Sie eine for-Schleife, um alle Elemente des file_system-Dictionaries mit der Methode items() zu durchlaufen. Dadurch werden der Schlüssel (name) und der Wert (content) abgerufen.
  2. Überprüfen Sie, ob content die Datei ist (also der String "file") und ob name mit target übereinstimmt.
  3. Wenn beide Bedingungen erfüllt sind, geben Sie True zurück, um anzuzeigen, dass die Datei gefunden wurde.
  4. Wenn content keine Datei ist, verwenden Sie die Funktion isinstance(), um zu prüfen, ob es sich bei content um einen Ordner handelt, indem Sie als zweites Argument dict übergeben.
  5. Wenn content ein Ordner ist, rufen Sie file_exists rekursiv auf, um die Suche dort fortzusetzen.
  6. Wenn der rekursive Aufruf True zurückgibt, geben Sie anschließend True zurück.
  7. Wenn keine Übereinstimmung in allen Ordnern und Dateien gefunden wird, geben Sie False zurück.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 2
Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
Wir sind enttäuscht, dass etwas schief gelaufen ist. Was ist passiert?
some-alt