Altri tipi di gestori dei dati in python: i tuples, le liste ed i dizionari.

Labels: Python — Tonylog 26 April 2007 @ 13:16

Il pitone di google
Oltre 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

No Comments

Send your comment for the article

No comments yet.

RSS TrackBack URI

Leave a comment


Warning: Invalid argument supplied for foreach() in /membri2/tonylog/wp-includes/wp-db.php on line 556

Warning: Invalid argument supplied for foreach() in /membri2/tonylog/wp-includes/wp-db.php on line 556

Warning: Invalid argument supplied for foreach() in /membri2/tonylog/wp-includes/wp-db.php on line 556

*
To prove you're a person (not a spam script), type the security word shown in the picture.
Click on the picture to hear an audio file of the word.

Click to hear an audio file of the anti-spam word