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

bookHerausforderung: 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.

In diesem Fall gilt:

  • Schlüssel sind Namen (entweder von Dateien oder Ordnern);
  • Wenn der Wert der String "file" ist, handelt es sich um eine Datei;
  • Wenn der Wert ein weiteres Dictionary ist, handelt es sich um einen Ordner.

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

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 (dargestellt durch den String "file") sucht. Geben Sie True zurück, wenn die Datei gefunden wurde; ansonsten geben Sie False zurück.

  1. Verwenden Sie eine for-Schleife, um alle Elemente des file_system-Dictionarys mit der Methode items() zu durchlaufen. Dadurch werden der Schlüssel (name) und der Wert (content) abgerufen.
  2. Überprüfen Sie, ob content eine Datei ist (d. h. der String "file") und ob name mit target übereinstimmt.
  3. Wenn beide Bedingungen erfüllt sind, geben Sie True zurück.
  4. Wenn isinstance() keine Datei ist, prüfen Sie mit content, ob es sich um einen Ordner handelt. Hierbei dient dict als erstes Argument und content als zweites.
  5. Wenn es sich um einen Ordner handelt, rufen Sie file_exists rekursiv auf, um die Suche darin fortzusetzen.
  6. Wenn der rekursive Aufruf True zurückgibt, geben Sie True zurück.
  7. Wenn die Schleife endet, ohne die Datei gefunden zu haben, geben Sie False zurück.

Lösung

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 2
single

single

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

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

close

Awesome!

Completion rate improved to 4.35

bookHerausforderung: Rekursive Dateisuche

Swipe um das Menü anzuzeigen

Arbeiten mit verschachtelten Dictionaries

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

In diesem Fall gilt:

  • Schlüssel sind Namen (entweder von Dateien oder Ordnern);
  • Wenn der Wert der String "file" ist, handelt es sich um eine Datei;
  • Wenn der Wert ein weiteres Dictionary ist, handelt es sich um einen Ordner.

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

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 (dargestellt durch den String "file") sucht. Geben Sie True zurück, wenn die Datei gefunden wurde; ansonsten geben Sie False zurück.

  1. Verwenden Sie eine for-Schleife, um alle Elemente des file_system-Dictionarys mit der Methode items() zu durchlaufen. Dadurch werden der Schlüssel (name) und der Wert (content) abgerufen.
  2. Überprüfen Sie, ob content eine Datei ist (d. h. der String "file") und ob name mit target übereinstimmt.
  3. Wenn beide Bedingungen erfüllt sind, geben Sie True zurück.
  4. Wenn isinstance() keine Datei ist, prüfen Sie mit content, ob es sich um einen Ordner handelt. Hierbei dient dict als erstes Argument und content als zweites.
  5. Wenn es sich um einen Ordner handelt, rufen Sie file_exists rekursiv auf, um die Suche darin fortzusetzen.
  6. Wenn der rekursive Aufruf True zurückgibt, geben Sie True zurück.
  7. Wenn die Schleife endet, ohne die Datei gefunden zu haben, 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
single

single

some-alt