ePrometeusCorsoLinuxLinux
testi articoli
Testi Articoli  Download
Home | Espressioni | Comandi | Funzioni | Moduli | Classi | 
CorsoJava è ora Video! Free for all!
Clicca Qui!
Corso Python
Python: le espressioni
L'interprete
Numeri
Numeri complessi
Conversioni
Stringhe
Indici stringhe
Liste
Tuple
Dizionari


<<< Tuple >>>

Abbiamo visto le liste; in python abbiamo anche le tuple. Si comportano in maniera molto simile alle liste, ma hanno una caratteristica di essere immutabili. Ovvero una volta che viene creata, una tupla non può più essere modificata.

Per costruire una tupla, è sufficiente specificare una sequenza di oggetti da mettere in una tupla, separata da virgola. Ecco un esempio, compresa la dimostrazione della sua immutabilità.

>>> a = 2,3
>>> a[0]
2
>>> a[0]=1
TypeError: object doesn't support item assignment

Un caso particolare di tupla è quella composta da un solo elemento. Per distinguere un singolo elemento da questo caso, si usa una sintassi non particolarmente bella: la virgola "pendente". Ovvero, un oggetto seguito da una virgola, è una tupla di un solo elemento.

Le tuple vengono sfruttate oltre di per se (sono infatti comode raccolte di elementi) anche e soprattutto per assegnamento multipli, tramite il cosiddetto "packing" e "unpacking".

Facciano subito un esempio:

>>> x = (4,5)
>>> a,b = x
>>> a
4
>>> b
5

Abbiamo prima di tutto assegnato la tupla ad una sola variabile, e questo consiste nel "packing". Dopodiché abbiamo messo una tupla di variabili a sinistra di un assegnamento. Ovvero, dove normalmente va una singola variabile, abbiamo posto una serie di variabili separate da virgole. Tecnicamente si tratta appunto di una tupla usata un valore assegnato. In pratica in questo caso l'operatore di assegnamento effettua l' "unpacking": prendi i singoli elementi della tupla assegnata, e le assegna alle variabili contenute nella tupla "assegnante". Di solito, la maggior utilità di questo meccanismo consiste nel distribuire tra più variabili i risultati di una chiamata di procedura o funzione.

ePrometeus s.r.l. - Web Software House & Open Source System Integrator
MILANO - SAN BENEDETTO DEL TRONTO(AP)
Contatti: info@eprometeus.com