Sezione 5. Capitolo 3
single
Sfida: Ricerca Ricorsiva di File
Scorri per mostrare il menu
Lavorare con dizionari annidati
I dizionari possono contenere altri dizionari, caratteristica 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')
Compito
Scorri per iniziare a programmare
Per verificare se un file specifico 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 dopo aver controllato tutti i livelli non viene trovato nulla, restituire
False.
Soluzione
Tutto è chiaro?
Grazie per i tuoi commenti!
Sezione 5. Capitolo 3
single
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione