domenica 9 dicembre 2012

I dizionari

In questo post parliamo di dizionari. Cosa sono i dizionari? Sarebbe molto interessante saperlo, ma volutamente non rispondo! Facciamo una cosa. Creiamo una rubrica telefonica rudimentale.

Rubrica_telefonica={"Luigi":32877300,"Nino":34777300,"Marco":39277700,"Giorgio":33977700}

print Rubrica_telefonica
Ecco. Questo è un dizionario. Abbiamo una variabile, Rubrica_telefonica", cui assegnamo un valore, tutto ciò che è contenuto tra le parentesi graffe.

Come si può constatare, il dizionario che abbiamo creato contiene quattro coppie, costituite da nome più numero telefonico, ognuna delle quali divise da due punti ":"

Prendiamo in considerazione la prima coppia:

"Luigi":32877300

Il primo elemento della coppia, nella fattispecie "Luigi", costituisce una chiave; il secondo elemento invece è il valore.

A fronte di una chiave, che può essere un numero, una stringa, (nel nostro caso è una stringa), corrisponde un solo valore.

Se volessimo stampare a video solo i nomi contenuti in rubrica (le chiavi), dovremmo fare così:

Rubrica_telefonica.keys()

Se invece volessimo restituiti solo i numeri telefonici (valori), dovremmo scrivere:

Rubrica_telefonica.values()
Succede che Marco cambia numero telefonico; in tal caso ci tocca aggiornare la nostra rubrica. Basta fare così:

Rubrica_telefonica["Marco"] = 33344400

print Rubrica_telefonica
Al bar conosciamo una bella ragazza che, subito dopo il caffè, ci fa dono del suo numero di telefono (solo del suo numero telefonico!!). Mettiamo in moto il nostro portatile e aggiorniamo la rubrica:

Posto che la ragazza si chiami Luisa e il suo numero telefonico sia 3337900, per aggiornare la rubrica scriveremo:

Rubrica_telefonica["Luisa"] = 3337900


Rubrica_telefonica.keys()
Può anche succedere che litighiamo con Giorgio. La prima reazione è quella di cancellare il suo numero telefonico dalla rubrica. Io, ad esempio, ieri ho cancellato quello di Stalmman.

del Rubrica_telefonica["Giorgio"]

print Rubrica_telefonica
E se volessimo sapere il numero dei contatti presenti nella nostra rubrica?

len(Rubrica_telefonica)

A me capita, soprattutto nel bus, di pensare se ho il  numero telefonico di Nino in rubrica. Bene, metto in moto il portatile e scrivo

"Nino" in Rubrica_telefonica
Come potete vedere, Python dà come risultato True, cioè vero. Se invece chiedo se in rubrica è presente Pasquale, Python mi dà come risposta False, cioè non c'è alcun Pasquale.

 Per ottenere lo stesso risultato possiamo usare anche un altro metodo:

Rubrica_telefonica.has_key("Nino")
Onestamente preferisco il primo.

Chiudiamo il post in bellezza.
Immaginiamo di avere due rubriche telefoniche

Rubrica1={"Luca":33789700,"Ennio":34089500}

Rubrica2={"Vito":32999900,"Lucia":32874500}

Ad un certo momento della giornata decidiamo di fonderle in modo da creare una sola rubrica. Come facciamo?

Rubrica1.update(Rubrica2)
Rubrica1.keys()
In questo caso ci viene stampata una lista con le chiavi dei due dizionari fusi.

Ma insomma cosa sono 'sti dizionari? Ok, provo a rispondere. Il dizionario è un insieme non omogeneo e non ordinato di elementi. E invece voi sapreste dirmi la differenza tra dizionari e liste? ;)

Alla prossima!

Vi ricordo che l'indice di Mission Python lo trovate qui.

Nessun commento:

Posta un commento