Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Haaste: Rekursiivinen Tiedostohaku | Rekurssio ja Lambda-Funktiot
Quizzes & Challenges
Quizzes
Challenges
/
Python-Funktioiden Opas

bookHaaste: Rekursiivinen Tiedostohaku

Työskentely sisäkkäisten sanakirjojen kanssa

Sanakirjat voivat sisältää muita sanakirjoja, mikä on hyödyllistä hierarkkisen datan, kuten tiedostojärjestelmän, esittämiseen.

  • Avaimet ovat tiedosto- tai kansioiden nimiä;
  • "file" tarkoittaa, että kohde on tiedosto;
  • Sisäkkäinen sanakirja tarkoittaa, että kohde on kansio.

Käytä items()-metodia avain–arvo-parien läpikäymiseen.

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

Käytä isinstance(content, dict) tarkistaaksesi, edustaako arvo kansiota:

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
Tehtävä

Swipe to start coding

Tarkistaaksesi, onko tietty tiedosto olemassa sisäkkäisessä sanakirjassa, toteuta rekursiivinen file_exists-funktio:

  1. Käy sanakirja läpi items()-metodilla.
  2. Jos content on "file" ja name vastaa target-arvoa, palauta True.
  3. Jos content on kansio (isinstance(content, dict)), kutsu file_exists-funktiota rekursiivisesti.
  4. Jos rekursiivinen kutsu palauttaa True, välitä True eteenpäin.
  5. Jos mikään ei täsmää kaikkien tasojen tarkistamisen jälkeen, palauta False.

Ratkaisu

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 5. Luku 2
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

close

Awesome!

Completion rate improved to 4.17

bookHaaste: Rekursiivinen Tiedostohaku

Pyyhkäise näyttääksesi valikon

Työskentely sisäkkäisten sanakirjojen kanssa

Sanakirjat voivat sisältää muita sanakirjoja, mikä on hyödyllistä hierarkkisen datan, kuten tiedostojärjestelmän, esittämiseen.

  • Avaimet ovat tiedosto- tai kansioiden nimiä;
  • "file" tarkoittaa, että kohde on tiedosto;
  • Sisäkkäinen sanakirja tarkoittaa, että kohde on kansio.

Käytä items()-metodia avain–arvo-parien läpikäymiseen.

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

Käytä isinstance(content, dict) tarkistaaksesi, edustaako arvo kansiota:

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
Tehtävä

Swipe to start coding

Tarkistaaksesi, onko tietty tiedosto olemassa sisäkkäisessä sanakirjassa, toteuta rekursiivinen file_exists-funktio:

  1. Käy sanakirja läpi items()-metodilla.
  2. Jos content on "file" ja name vastaa target-arvoa, palauta True.
  3. Jos content on kansio (isinstance(content, dict)), kutsu file_exists-funktiota rekursiivisesti.
  4. Jos rekursiivinen kutsu palauttaa True, välitä True eteenpäin.
  5. Jos mikään ei täsmää kaikkien tasojen tarkistamisen jälkeen, palauta False.

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 5. Luku 2
single

single

some-alt