Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Sfida: Ricerca Ricorsiva di File | Ricorsione e Funzioni Lambda
Tutorial Sulle Funzioni in Python
Sezione 5. Capitolo 3
single

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.

1234567
file_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:

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')
Compito

Scorri per iniziare a programmare

Per verificare se un file specifico esiste in un dizionario annidato, implementare una funzione ricorsiva file_exists:

  1. Scorrere il dizionario con items().
  2. Se content è 'file' e name corrisponde a target, restituire True.
  3. Se content è una cartella (isinstance(content, dict)), chiamare ricorsivamente file_exists.
  4. Se la chiamata ricorsiva restituisce True, propagare True.
  5. Se dopo aver controllato tutti i livelli non viene trovato nulla, restituire False.

Soluzione

Switch to desktopCambia al desktop per esercitarti nel mondo realeContinua da dove ti trovi utilizzando una delle opzioni seguenti
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 5. Capitolo 3
single

single

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

some-alt