Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Udfordring: Rekursiv Filsøgning | Rekursion og Lambda-Funktioner
Python Funktioner Vejledning

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

1234567
file_system = { "home": {"resume.pdf": "file", "notes.txt": "file"}, "etc": {"config.yaml": "file"} } for name, content in file_system.items(): print(name, "->", content)
copy

Brug isinstance(content, dict) til at kontrollere, om en værdi repræsenterer en mappe:

12345678910
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
Opgave

Swipe to start coding

For at kontrollere, om en bestemt fil eksisterer i et indlejret dictionary, implementeres en rekursiv file_exists-funktion:

  1. Gennemløb dictionaryen med items().
  2. Hvis content er "file" og name matcher target, returnér True.
  3. Hvis content er en mappe (isinstance(content, dict)), kald file_exists rekursivt.
  4. Hvis det rekursive kald returnerer True, viderefør True.
  5. Hvis intet matcher efter at have gennemgået alle niveauer, returnér False.

Løsning

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 5. Kapitel 2
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

close

Awesome!

Completion rate improved to 4.17

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

1234567
file_system = { "home": {"resume.pdf": "file", "notes.txt": "file"}, "etc": {"config.yaml": "file"} } for name, content in file_system.items(): print(name, "->", content)
copy

Brug isinstance(content, dict) til at kontrollere, om en værdi repræsenterer en mappe:

12345678910
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
Opgave

Swipe to start coding

For at kontrollere, om en bestemt fil eksisterer i et indlejret dictionary, implementeres en rekursiv file_exists-funktion:

  1. Gennemløb dictionaryen med items().
  2. Hvis content er "file" og name matcher target, returnér True.
  3. Hvis content er en mappe (isinstance(content, dict)), kald file_exists rekursivt.
  4. Hvis det rekursive kald returnerer True, viderefør True.
  5. Hvis intet matcher efter at have gennemgået alle niveauer, returnér False.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 5. Kapitel 2
single

single

some-alt