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


Programmare con Python

10 - Le tuple


Dimmi con chi vai e ti dirò se vengo anch'io.
Marcello Marchesi

Con le tuple, allarghiamo ancora un po' la nostra conoscenza di Python. Le tuple infatti possono essere definite delle 'parenti' delle liste e dei dizionari, ma con una particolarità (a dire il vero, ne hanno altre che incontreremo durante la lezione), che le rende ben differenti. Infatti, esse sono immutabili; queste significa che mentre le liste possono essere modificate (cioé si possono eliminare o aggiungere elementi), con le tuple tutto questo non è possibile. A meno che non si decida di riscriverla ex novo. Se provate a 'metterci le mani' ricaverete solo un mesto messaggio di errore.
La loro utilità è data dal fatto che se si desidera creare un elenco con tutta una serie di elementi che non deve essere modificato, ci si rivolgerà proprio alle tuple. Vediamo adesso di comprendere la loro sintassi.

Le tuple sono una collezione ordinata di oggetti e possono racchiudere al loro interno qualunque tipo di oggetti. Gli elementi di una tupla sono identificati tramite un indice, e non una chiave come nei dizionari. Questo è dovuto al fatto che gli oggetti vengono ordinati per posizione. Nei dizionari (che abbiamo visto la scorsa puntata), gli elementi sono memorizzati in modo del tutto casuale.
Nella tupla gli elementi sono separati da virgole, e racchiusi tra parentesi tonde. Dopo tanto parlarne, ci sembra giunto finalmente il momento di presentarne una come esempio.



Il prodotto di quanto sopra sarà ovviamente Mac OS X 10.4. Le tuple supportano le operazioni che abbiamo già visto nelle liste: cioé la concatenazione e la ripetizione.



Ecco un altro esempio che mostra la funzione ripetizione all'opera.



Le parentesi tonde () creano una tupla vuota.

Prima di procedere chiariamo il concetto di immutabilità delle tuple. Se io creo una tupla di questo genere:



e poi decido di aggiungere o (come in questo caso), di mettere in ordine i suoi elementi, riceverò un messaggio di errore. Idem se tento di cancellare qualche elemento della tupla. Idem se provo a usare index. Questo perché abbiamo appunto l'immutabilità delle tuple. Viceversa le liste, questo limite non lo hanno.

Qualche particolarità

Ora dobbiamo segnalare alcune particolarità legate alle tuple. Per far sì che Python consideri ciò che è tra parentesi tonde una tupla, e non un semplice oggetto stringa, dobbiamo aggiungere una virgola. Ecco l'esempio che dovrebbe chiarirvi ogni dubbio.



Da segnalare che è possibile omettere le parentesi tonde, ma solo in quei casi dove si è certi di non generare confusione (a sé in primo luogo, e poi anche agli altri).



Questo altro piccolo esempio dovrebbe ricordarvi (ma ne abbiamo già accennato prima), che le tuple usano indici e non chiavi per individuare gli elementi al loro interno.



Anche nelle tuple gli indici partono da zero. Non dobbiamo cadere nella trappola del ritenere le tuple uno strumento 'rigido', poco flessibile rispetto agli altri che abbiamo visto nelle lezioni precedenti. Le tuple infatti supportano l'annidamento, e perciò al loro interno possono 'ospitare', oltre ad altre tuple, anche liste e dizionari.
Prima abbiamo detto che il metodo index non è supportato dalle tuple. Ma se avete necessità di sapere se un certo elemento è presente all'interno di una tupla, come fare? Basta usare in.



Se l'elemento sarà presente vedremo stampato a video un bel 'True'; altrimenti (come in questo caso), 'False'. Per questa volta è tutto: alla prossima allora!

Lezione successiva

Data di pubblicazione: 14-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.