Haaste: 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.
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")
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
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Can you explain how to add a new file or folder to this nested dictionary?
How can I recursively print all files and folders in this structure?
What does the output of these code samples look like?
Mahtavaa!
Completion arvosana parantunut arvoon 4.17
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")
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
Kiitos palautteestasi!
single