Tuple
Cosa sono le tuple?
Section titled “Cosa sono le tuple?”Una tupla è simile a una lista: contiene elementi in ordine. La differenza fondamentale è che le tuple sono immutabili: una volta create, non si possono modificare. Non puoi aggiungere, togliere o cambiare gli elementi.
Pensa alle tuple come a dati “fissi”: le coordinate GPS di un posto, i giorni della settimana, i colori del semaforo. Sono informazioni che non devono cambiare.
Creare una tupla
Section titled “Creare una tupla”Le tuple si scrivono con le parentesi tonde ():
coordinate = (10, 20)colori = ("rosso", "verde", "blu")mista = (1, "ciao", True, 3.14)vuota = ()Attenzione: Una tupla con un solo elemento richiede una virgola finale, altrimenti Python la interpreta come una normale espressione tra parentesi:
non_e_tupla = (42) # è solo il numero 42 tra parentesi!e_una_tupla = (42,) # la virgola la rende una tupla
Accedere agli elementi
Section titled “Accedere agli elementi”Funziona esattamente come per le liste, con gli indici:
colori = ("rosso", "verde", "blu")print(colori[0]) # rossoprint(colori[-1]) # blu — l'ultimo elementoprint(colori[1:3]) # ('verde', 'blu') — slicingNon si possono modificare
Section titled “Non si possono modificare”Se provi a cambiare un elemento, Python dà errore:
colori = ("rosso", "verde", "blu")colori[0] = "giallo" # TypeError: 'tuple' object does not support item assignmentQuesto è il comportamento voluto: garantisce che i dati rimangano intatti.
Operazioni sulle tuple
Section titled “Operazioni sulle tuple”Anche se non si modificano, puoi comunque combinarle e controllarle:
a = (1, 2, 3)b = (4, 5, 6)
print(a + b) # (1, 2, 3, 4, 5, 6) — crea una nuova tupla unendo le dueprint(a * 2) # (1, 2, 3, 1, 2, 3) — ripeteprint(3 in a) # True — controlla se 3 è presenteprint(len(a)) # 3 — numero di elementiSpacchettare una tupla (unpacking)
Section titled “Spacchettare una tupla (unpacking)”Puoi assegnare gli elementi di una tupla a più variabili in una sola riga. Si chiama unpacking (spacchettamento):
coordinate = (10, 20)x, y = coordinateprint(x) # 10print(y) # 20
nome, eta, citta = ("Alice", 16, "Roma")print(nome) # Aliceprint(eta) # 16print(citta) # RomaFunziona anche con le liste. L’importante è che il numero di variabili corrisponda al numero di elementi.
Convertire tra tuple e liste
Section titled “Convertire tra tuple e liste”Se hai una tupla e hai bisogno di modificarla, convertila in lista, modificala e riconvertila:
t = (1, 2, 3)l = list(t) # converte in listal.append(4) # modifica la listat = tuple(l) # riconverte in tupla
print(t) # (1, 2, 3, 4)Quando usare una tupla invece di una lista?
Section titled “Quando usare una tupla invece di una lista?”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 per tutto il resto, quando i dati possono cambiare.