Introduzione
Le liste in Python sono una delle strutture dati più versatili e utilizzate. Oltre a contenere semplici valori, possono anche gestire dati complessi come oggetti, dizionari e tuple. In questo tutorial, esploreremo come utilizzare le liste per gestire dati complessi, come ad esempio una lista di dizionari, per rappresentare informazioni strutturate come una rubrica di contatti. Questo approccio è utile in molte applicazioni, dalla gestione di dati a piccole applicazioni fino a progetti più complessi.
Codice completo
def aggiungi_contatto(rubrica, nome, telefono, email):
"""Aggiunge un contatto alla rubrica."""
contatto = {
´nome´: nome,
´telefono´: telefono,
´email´: email
}
rubrica.append(contatto)
def stampa_rubrica(rubrica):
"""Stampa i contatti presenti nella rubrica."""
for contatto in rubrica:
print(f"Nome: {contatto[´nome´]}, Telefono: {contatto[´telefono´]}, Email: {contatto[´email´]}")
def cerca_contatto(rubrica, nome):
"""Cerca un contatto per nome nella rubrica."""
for contatto in rubrica:
if contatto[´nome´].lower() == nome.lower():
return contatto
return None
# Creiamo una rubrica vuota
rubrica = []
# Aggiungiamo alcuni contatti
aggiungi_contatto(rubrica, ´Mario Rossi´, ´1234567890´, ´[email protected]´)
aggiungi_contatto(rubrica, ´Giulia Bianchi´, ´0987654321´, ´[email protected]´)
# Stampa la rubrica
print("Rubrica dei contatti:")
stampa_rubrica(rubrica)
# Cerchiamo un contatto
nome_da_cercare = ´Mario Rossi´
contatto_trovato = cerca_contatto(rubrica, nome_da_cercare)
if contatto_trovato:
print(f"nContatto trovato: {contatto_trovato}")
else:
print(f"nContatto ´{nome_da_cercare}´ non trovato.")
Spiegazione
Nel codice sopra, abbiamo definito una rubrica utilizzando una lista di dizionari. Ogni dizionario rappresenta un contatto con le chiavi ´nome´, ´telefono´ e ´email´. Vediamo in dettaglio le funzioni implementate:
- aggiungi_contatto(rubrica, nome, telefono, email): Questa funzione crea un dizionario per un nuovo contatto e lo aggiunge alla lista ´rubrica´.
- stampa_rubrica(rubrica): Questa funzione scorre la lista dei contatti e stampa le informazioni di ciascun contatto in un formato leggibile.
- cerca_contatto(rubrica, nome): Questa funzione cerca un contatto per nome. Se trova una corrispondenza, restituisce il dizionario del contatto; altrimenti, restituisce None.
Abbiamo poi creato una rubrica vuota e aggiunto due contatti. Infine, abbiamo stampato la rubrica e cercato un contatto specifico, mostrando come gestire dati complessi in modo semplice e intuitivo.
Best practice
Quando si lavora con liste di dizionari o dati complessi in Python, è importante seguire alcune best practice:
- Utilizzare nomi significativi: Assicurati che le chiavi dei dizionari siano chiare e descrittive, per migliorare la leggibilità del codice.
- Gestire le eccezioni: Considera di implementare la gestione delle eccezioni quando si cerca un contatto o si accede a dati, per evitare crash dell´applicazione.
- Documentare il codice: Utilizza docstring per documentare le funzioni, in modo che altri programmatori (o te stesso in futuro) possano comprendere rapidamente il loro scopo.
- Separare la logica di business dalla presentazione: Se il tuo progetto cresce, considera di separare la logica di gestione dei dati dalla logica di presentazione, per rendere il codice più modulare e manutenibile.
Riepilogo
In questo tutorial, abbiamo esplorato come utilizzare le liste in Python per gestire dati complessi, in particolare attraverso l´implementazione di una rubrica di contatti. Abbiamo visto come aggiungere, stampare e cercare contatti utilizzando una lista di dizionari. Questo approccio è estremamente utile per la gestione di dati strutturati e può essere facilmente adattato a molte altre applicazioni.
