Mahtavaa!
Completion arvosana parantunut arvoon 4.17Osio 5. Luku 2
single
Haaste: 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.
1234567file_system = { "home": {"resume.pdf": "file", "notes.txt": "file"}, "etc": {"config.yaml": "file"} } for name, content in file_system.items(): print(name, "->", content)
Käytä isinstance(content, dict) tarkistaaksesi, edustaako arvo kansiota:
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")
Tehtävä
Swipe to start coding
Tarkistaaksesi, onko tietty tiedosto olemassa sisäkkäisessä sanakirjassa, toteuta rekursiivinen file_exists-funktio:
- Käy sanakirja läpi
items()-metodilla. - Jos
contenton"file"janamevastaatarget-arvoa, palautaTrue. - Jos
contenton kansio (isinstance(content, dict)), kutsufile_exists-funktiota rekursiivisesti. - Jos rekursiivinen kutsu palauttaa
True, välitäTrueeteenpäin. - Jos mikään ei täsmää kaikkien tasojen tarkistamisen jälkeen, palauta
False.
Ratkaisu
Oliko kaikki selvää?
Kiitos palautteestasi!
Osio 5. Luku 2
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme