Tonylog
What geeks like
Altri tipi di gestori dei dati in python: i tuples, le liste ed i dizionari.
by TonylogOltre alle stringhe ed ai normali numeri python ci offre altri tre tipi importanti di gestori, questi sono i tuple, le liste ed i dizionari vediamoli nel dettaglio.
I tuples (rhymes with supples)
Se avete letto le guide precedenti che riguardano l’handling delle stringhe e dei numeri avete probabilmente già usato i tuples.
Esempio pratico:
>>>print “%s %d %s” % (’Giovanni ha mangiato’, 2, ‘mele’)
Giovanni ha mangiato 2 mele
Lampante che il tuple ci permette l’handling dei dati in ordine di immissione.
Approfondimento:
I tuple si possono anche utilizzare in maniera diversa a seconda da come vengono presentati all’interprete python, mi spiego.
Esempio pratico:
>>>ciccio = (”Valore 1″, “Valore 2″, “Valore 3″)
>>>print “Scrivi il primo valore del tuple: %s” %ciccio[0]
Scrivi il primo valore del tuple: Valore 1
>>>print “Scrivi il secondo valore del tuple: %s” %ciccio[1]
Scrivi il secondo valore del tuple: Valore 2
>>>print “Scrivi il terzo valore del tuple: %s” %ciccio[2]
Scrivi il terzo valore del tuple: Valore 3
Mi sembra abbastanza immediato ma lo andiamo a vedere nel dettaglio….
Nella prima riga assegniamo 3 valori diversi ad una stessa variabile, questo potrebbe ricordare vagamente gli array in PHP per che li conosce ovviamente.
Al fine di richiamare i valori veri e propri usiamo lo stesso nome della variabile con tra parentesi quadra il numero del progressivo a cui abbiamo assegnato il valore.
N.B. I computer considerano lo zero come numero di conseguenza i progressivi sono: 0,1,2,3,4,5,6 etc.
La funzione built-in len()
Spero vi siate posti questa domanda comunque se no la sollevo io:
Ma come facciamo a sapere se un tuple assume più di un valore?
In questo caso la funzione built-in di python len() ci viene in aiuto, questa non fa altro che stabilire la lunghezza di una variabile o tuple, di conseguenza ci dice se assume più di un valore.
Esempio pratico:
>>>ciccio = (”Valore 1″, “Valore 2″, “Valore 3″)
>>>print len(ciccio)
3
Che cosa succede:
Non abbiamo fatto altro che chiedere a python di scrivere (print) la lunghezza di ciccio (len(ciccio)).
Tutto questo funziona anche in multidimensione cioè si può assegnare a ciccio un valore ciccio[0] e si può assegnare a ciccio[0] un valore ciccio[0][0] , ciccio [0][1] ma ci occorrerà mai?
Curiosità :
A differenza di una stringa quando andiamo a dichiarare un tuple anche se esso è composto da un singolo valore dobbiamo farlo seguire da una virgola:
>>>tuple = (”sono solo”, )
Se non seguiremo questa sintassi il tuple verrà considerato inesorabilmente stringa e di conseguenza in python chi nasce stringa muore stringa… (AHahAHahAHahAH! cmq è vero!).
Le liste
Le liste un po come i tuple sono degli elenchi ordinati di dati, le sequenze partono da zero e la loro principale differenza a livello visuale è l’uso delle parentesi quadre [ ] nella dichiarazione dei singoli elementi della lista.
Mo ci divertiamo….
Esempio pratico:
>>>condimenti = ["carbonara", "sugo", "sugo di carne", "ricotta e spinaci", "amatriciana"]
>>>count=0
>>>print “Oggi la pasta la facciamo alla %s” %condimenti[count]
Oggi la pasta la facciamo alla carbonara
>>>count = 1
>>> print “Oggi la pasta la facciamo al %s” %condimenti[count]
Oggi la pasta la facciamo al sugo
>>>count = 2
>>> print “Oggi la pasta la facciamo al %s” %condimenti[count]
Oggi la pasta la facciamo al sugo di carne
E così via, ho inviato a monitor i valori dei condimenti della pasta ogni volta con un valore diverso nonostante il lavoro dell’incremento di count normalmente è assegnato ad un loop ancora non ci siamo arrivati quindi ne parliamo al momento dei loop.
Dizionari
I dizionari Python sono dei contenitori di dati un pò come i tuple e le liste ma con la differenza che ad un dizionario si può assegnare un valore particolare indice che può a sua volta essere composto da lettere, numeri, stringhe o addirittura simboli.
Esempio sintattico:
>>>menu_di_oggi ={}
>>>menu_di oggi["colazione"] = “Cornetto e cappuccio”
>>>menu_di_oggi["pranzo"] = “Pasta all’amatriciana”
>>>menu_di_oggi["cena"] = “Arrosto e patate al forno”
Che abbiamo fatto fino adesso?
Abbiamo detto a python che stavamo inizializzando un dizionario con menu_di_oggi={}
Abbiamo detto anche i nomi degli indici con menu_di oggi["colazione"], menu_di_oggi["pranzo"], menu_di_oggi["cena"].
Abbiamo anche assegnato i valori agli indici: Cornetto e cappuccio, Pasta all’amatriciana, Arrosto e patate al forno.
N.B. I valori indice del dizionario sono chiamati anche chiavi.
Altra sintassi che può essere usata per definire i dizionari può essere:
>>>menu_di_oggi = {”colazione”:”Cornetto e cappuccio”, “pranzo”:”Pasta all’amatriciana”, “cena”: “Arrosto e patate al forno”}
Sarà un po più confusionario ma rende decisamente l’idea.
Come accedere ad i dati di un dizionario
Semplice, bisogna solamente nominare il dizionario e la chiave:
>>>print “%s” % menu_di_oggi["pranzo"]
Pasta all’amatriciana
Visualizziamo solo le chiavi di un dizionario:
>>>menu_di_oggi.keys()
['pranzo', 'cena', 'colazione']
OK
Visualizziamo solo i dati di un dizionario:
>>>menu_di_oggi.values()
["Pasta all'amatriciana", 'Arrosto e patate al forno', 'Cornetto e cappuccio']
OK