Percorso: ilMac.net > Scuola di Mac > Corsi > Programmare con Python


Programmare con Python

9 - I dizionari


Ho smesso di credere a Babbo Natale a sei anni. La mamma mi portò a conoscerlo in un grande magazzino e lui mi chiese l'autografo.
Shirley Temple, attrice

I dizionari, rispetto alle liste che abbiamo conosciuto nella puntata precedente, rappresentano una collezione non ordinata di oggetti. Cosa siano gli oggetti lo abbiamo già spiegato proprio la scorsa volta; perciò non torneremo sull'argomento. La differenza più rilevante sta nel fatto che i dizionari utilizzano qualsiasi tipo di dato come indice di ricerca per scovare quanto da noi desiderato. Le liste invece, pretendono solo gli interi come indice: provate perciò a usare nelle liste qualunque altra cosa e vi imbatterete in un errore. Un esempio vale come sempre più di mille parole, e allora eccovene uno, bello caldo e fumante:



Il risultato di per sé sarà irrilevante (premendo 'Run' avrete 1); quello che a noi sta a cuore è conoscere il funzionamento dei dizionari.
Il nostro primo dizionario avrà come nome ListaCeo, e le parentesi graffe lo racchiudono. Gli elementi che lo compongono sono separati da una virgola. Ma ogni elemento è composto da un indice e dal suo proprio valore separati da due punti. L'indice è chiamato in Python chiave (e possono essere o stringhe o numeri), mentre ogni elemento è definito invece coppia chiave-valore. Ed è la chiave che permette di restituire il valore dell'elemento.
C'è da sottolineare un aspetto: in Python i dizionari memorizzano gli elementi in maniera del tutto casuale. Non c'è da preoccuparsi perché come già abbiamo detto, per recuperare un elemento il nostro rettile userà la chiave ad esso associata. Non capite cosa voglio dire? Allora vi toccherà sorbirvi un altro esempio chiarificatore (lo spero!). Eliminate semplicemente dall'esempio precedente Gil Amelio, in modo che rimanga solo l'istruzione print ListaCeo. Premete 'Run'. Ecco il clamoroso risultato:



Ora probabilmente avrete capito cosa intendevo dire. Aggiungendo Gil Amelio a print ListaCeo avremo il risultato che desideriamo. Infatti, per recuperare il valore del nostro esempio useremo la chiave Gil Amelio.
Se poi volete avere la prova del nove, e vedere se è vero quanto affermato in precedenza (cioé che i dizionari usano qualunque tipo di dato come indice di ricerca), guardate ancora questo esempio:



Ovviamente funziona tutto perfettamente.
Procediamo con un po' di altri esempi per cercare di conoscere in maniera più approfondita i dizionari e le funzioni che usano. Ecco quindi un bel dizionario chiamato 'Hardware' il cui scopo sarebbe quello di gestire un magazzino ... L'esempio in questione è banale, semplicissimo; ma può essere un buon trampolino di lancio per esplorare e imparare al meglio Python. Qui la chiave è rappresentata dai prodotti Apple, mentre il valore è la quantità presente in questo fantomatico magazzino, e corrispondente a ciascun prodotto.



Vogliamo sapere quanti elementi ci sono nel nostro dizionario? Bene, allora basterà rivolgersi alla funzione len:

print len (Hardware)

Il risultato sarà 9. Se vogliamo sapere se nel nostro magazzino è presente ad esempio un esemplare del compinato Newton, useremo la funzione has_key. Il risultato sarà booleano: false se risulterà assente, e true qualora sia invece presente.



La funzione keys () ci permette di conoscere l'elenco delle chiavi del nostro dizionario. Cioé, quali prodotti abbiamo nel nostro magazzino.



Quella values () invece ci fa conoscere la lista dei valori. O meglio: le quantità di ciascun prodotto presente nel nostro magazzino.



Se desideriamo cancellare qualcosa dal nostro dizionario la funzione del è lì pronta a servirci.



Per aggiungere qualcosa è sufficiente agire in questo modo:



Per creare un dizionario vuoto è sufficiente usare le parentesi graffe {}.

Per riassumere


I dizionari sono uno strumento interessantissimo di Python. Come le liste supportano l'annidamento, e contengono oggetti di qualsiasi tipo. Come le liste, possono essere modificati senza per questo dover creare un nuovo dizionario. Come chiave, è possibile usare qualunque oggetto immutabile. Il fatto che i dizionari non mantengono in ordine gli elementi al loro interno li differenzia dalle liste; ma questa particolarità permette di effettuare ricerche rapide. Le chiavi infatti offrono solo un'indicazione simbolica degli elementi racchiusi in un dizionario.

Lezione successiva

Data di pubblicazione: 05-10-2005

L'intero contenuto di questo sito è © dal 1998 del Team di ilMac.net, è vietata ogni riproduzione senza il consenso scritto da parte degli autori.