Sfida: Ricerca Ricorsiva di File
Lavorare con dizionari annidati
I dizionari possono contenere altri dizionari, il che è utile per rappresentare dati gerarchici come un file system.
- Le chiavi sono nomi di file o cartelle;
"file"indica che l'elemento è un file;- Un dizionario annidato indica che l'elemento è una cartella.
Utilizzare items() per iterare sulle coppie chiave–valore.
1234567file_system = { "home": {"resume.pdf": "file", "notes.txt": "file"}, "etc": {"config.yaml": "file"} } for name, content in file_system.items(): print(name, "->", content)
Utilizzare isinstance(content, dict) per verificare se un valore rappresenta una cartella:
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
Per verificare se un determinato file esiste in un dizionario annidato, implementare una funzione ricorsiva file_exists:
- Scorrere il dizionario con
items(). - Se
contentè"file"enamecorrisponde atarget, restituireTrue. - Se
contentè una cartella (isinstance(content, dict)), chiamare ricorsivamentefile_exists. - Se la chiamata ricorsiva restituisce
True, propagareTrue. - Se nessuna corrispondenza viene trovata dopo aver controllato tutti i livelli, restituire
False.
Soluzione
Grazie per i tuoi commenti!
single
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
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?
Awesome!
Completion rate improved to 4.17
Sfida: Ricerca Ricorsiva di File
Scorri per mostrare il menu
Lavorare con dizionari annidati
I dizionari possono contenere altri dizionari, il che è utile per rappresentare dati gerarchici come un file system.
- Le chiavi sono nomi di file o cartelle;
"file"indica che l'elemento è un file;- Un dizionario annidato indica che l'elemento è una cartella.
Utilizzare items() per iterare sulle coppie chiave–valore.
1234567file_system = { "home": {"resume.pdf": "file", "notes.txt": "file"}, "etc": {"config.yaml": "file"} } for name, content in file_system.items(): print(name, "->", content)
Utilizzare isinstance(content, dict) per verificare se un valore rappresenta una cartella:
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
Per verificare se un determinato file esiste in un dizionario annidato, implementare una funzione ricorsiva file_exists:
- Scorrere il dizionario con
items(). - Se
contentè"file"enamecorrisponde atarget, restituireTrue. - Se
contentè una cartella (isinstance(content, dict)), chiamare ricorsivamentefile_exists. - Se la chiamata ricorsiva restituisce
True, propagareTrue. - Se nessuna corrispondenza viene trovata dopo aver controllato tutti i livelli, restituire
False.
Soluzione
Grazie per i tuoi commenti!
single