Le Tuple in Python
Obiettivi della pillola
Alla fine di questa pillola saprai:
- creare e inizializzare tuple (
tuple); - accedere agli elementi tramite indice;
- comprendere l’immutabilità delle tuple;
- usare le tuple per assegnazioni multiple e come chiavi nei dizionari;
- distinguere chiaramente le tuple da liste e set.
Cos’è una tupla
Una tupla è una collezione ordinata e immutabile di elementi.
Si crea con le parentesi tonde ( ) o con la funzione tuple().
coordinate = (10, 20)
colori = ("rosso", "verde", "blu")
vuota = ()
singleton = (5,) # tupla con un solo elemento
Nota: Le tuple possono contenere elementi eterogenei e anche altre tuple.
Accesso agli elementi
Come per le liste, si usano gli indici (partono da 0).
t = ("a", "b", "c", "d")
print(t[0]) # a
print(t[2]) # c
print(t[-1]) # d (ultimo elemento)
Immutabilità
Una volta creata, una tupla non può essere modificata: non si possono aggiungere, eliminare o cambiare elementi. Questo la rende più “sicura” quando non vuoi che i dati vengano alterati.
t = (1, 2, 3)
# t[0] = 99 # ERRORE: oggetti tuple non supportano l'assegnazione
Nota: Puoi però creare una nuova tupla a partire da altre:
t = (1, 2, 3) nuova = t + (4, 5) print(nuova) # (1, 2, 3, 4, 5)
Assegnazioni multiple
Le tuple sono molto usate per unpacking e assegnazioni multiple.
punto = (3, 4)
x, y = punto
print(x, y) # 3 4
a, b, c = (10, 20, 30)
print(a+b+c) # 60
Tuple come chiavi nei dizionari
Essendo immutabili, le tuple possono essere usate come chiavi in un dizionario (cosa non possibile con le liste).
rubrica = {
("Mario", "Rossi"): "333-1234567",
("Luca", "Bianchi"): "333-7654321"
}
print(rubrica[("Mario", "Rossi")])
Funzioni utili
len(t)→ lunghezza della tupla.min(t),max(t)→ minimo e massimo (se comparabili).tuple(lista)→ converte una lista in tupla.- slicing → come con le liste:
t[1:3].
t = (10, 20, 30, 40)
print(len(t)) # 4
print(t[1:3]) # (20, 30)
print(tuple([1, 2, 3])) # (1, 2, 3)
Differenze con liste e set
- Liste: ordinate, mutabili, consentono duplicati.
- Set: non ordinati, mutabili, eliminano duplicati, non indicizzabili.
- Tuple: ordinate, immutabili, consentono duplicati, indicizzabili.
lista = [1, 2, 2, 3]
insieme = {1, 2, 2, 3}
tupla = (1, 2, 2, 3)
print(lista) # [1, 2, 2, 3]
print(insieme) # {1, 2, 3}
print(tupla) # (1, 2, 2, 3)
In breve: usa una tupla quando ti serve una collezione ordinata e immutabile di valori, utile ad esempio per rappresentare coordinate, date o record fissi.
EC