Salta ai contenuti
Manuale LogoManuale Logo

Tuple

Una tupla è simile a una lista: contiene elementi in ordine. È però immutabile: dopo la creazione non puoi aggiungere, rimuovere o cambiare elementi.

Le tuple sono adatte a dati “fissi”, come coordinate GPS, giorni della settimana o colori del semaforo.

Le tuple si possono scrivere con le parentesi tonde ():

coordinate = (10, 20)
colori = ("rosso", "verde", "blu")
mista = (1, "ciao", True, 3.14)
vuota = ()

L’accesso agli elementi usa gli indici, come nelle liste:

colori = ("rosso", "verde", "blu")
print(colori[0]) # rosso
print(colori[-1]) # blu: l'ultimo elemento
print(colori[1:3]) # ('verde', 'blu'): slicing

Se provi a cambiare un elemento, Python dà errore:

colori = ("rosso", "verde", "blu")
colori[0] = "giallo" # TypeError: 'tuple' object does not support item assignment

L’immutabilità impedisce di cambiare quei dati per errore.

Anche se non puoi modificarle, puoi combinarle e controllarne il contenuto:

a = (1, 2, 3)
b = (4, 5, 6)
print(a + b) # (1, 2, 3, 4, 5, 6): crea una nuova tupla unendo le due
print(a * 2) # (1, 2, 3, 1, 2, 3): ripete
print(3 in a) # True: controlla se 3 è presente
print(len(a)) # 3: numero di elementi

Puoi assegnare gli elementi di una tupla a più variabili in una sola riga. Questa operazione si chiama unpacking (spacchettamento):

coordinate = (10, 20)
x, y = coordinate
print(x) # 10
print(y) # 20
nome, eta, citta = ("Alice", 16, "Roma")
print(nome) # Alice
print(eta) # 16
print(citta) # Roma

Funziona anche con le liste. L’importante è che il numero di variabili corrisponda al numero di elementi.

Per modificare una tupla, convertila in lista, applica le modifiche e trasformala di nuovo in tupla:

t = (1, 2, 3)
l = list(t) # converte in lista
l.append(4) # modifica la lista
t = tuple(l) # riconverte in tupla
print(t) # (1, 2, 3, 4)

Usa una tupla quando:

  • I dati non devono mai cambiare (coordinate, giorni della settimana, codici fissi)
  • Vuoi comunicare a chi legge il codice che quei dati sono “di sola lettura”
  • Hai bisogno di usarla come chiave di un dizionario (le liste non si possono usare come chiavi)

Usa una lista quando i dati possono cambiare.