Tuple Python: Una Panoramica
Impara ad accedere agli elementi delle tuple Python con indicizzazione positiva, negativa, slicing e accesso annidato, con esempi eseguibili.
Questa pagina spiega come leggere i dati da una tupla Python. Imparerai l'indicizzazione positiva, l'indicizzazione negativa, lo slicing, l'accesso alle tuple annidate, l'operatore in e la funzione integrata len(). Vedrai anche quando le tuple sono la scelta giusta rispetto alle liste.
Cos'è una Tupla?
Una tupla è una sequenza di valori ordinata e immutabile. "Ordinata" significa che ogni elemento ha una posizione fissa che puoi indirizzare tramite indice. "Immutabile" significa che non puoi modificare, aggiungere o rimuovere elementi dopo la creazione — è questo che rende le tuple utili quando l'integrità dei dati è importante.
# Create a tuple with parentheses
colors = ("red", "green", "blue")
# The built-in tuple() function works too
digits = tuple([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])Per tutto ciò che puoi fare quando crei una tupla per la prima volta, consulta il capitolo Tuple Python.
Accedere agli Elementi tramite Indice
Come le liste, le tuple usano l'indicizzazione a base zero: il primo elemento è all'indice 0, il secondo a 1, e così via.
Index: 0 1 2
| | |
colors = ("red", "green", "blue")Sintassi: tuple_name[index]
Accedere a un indice che non esiste genera un IndexError:
colors = ("red", "green", "blue")
print(colors[5]) # IndexError: tuple index out of rangeIndicizzazione Negativa
Python ti consente di contare dalla fine della tupla usando numeri negativi. L'indice -1 è l'ultimo elemento, -2 è il penultimo, e così via.
Index: 0 1 2
Neg idx: -3 -2 -1
| | |
colors = ("red", "green", "blue")L'indicizzazione negativa è particolarmente comoda quando hai bisogno dell'ultimo elemento senza chiamare len().
Slicing di una Tupla
Uno slice estrae una sotto-tupla. La sintassi è tuple_name[start:stop] dove start è incluso e stop è escluso.
fruits = ("apple", "banana", "cherry", "date", "elderberry")
print(fruits[1:3]) # ('banana', 'cherry') — index 1 up to (not including) 3
print(fruits[:3]) # ('apple', 'banana', 'cherry') — from beginning to index 3
print(fruits[2:]) # ('cherry', 'date', 'elderberry') — from index 2 to end
print(fruits[:]) # entire tuple (useful for shallow copy)Puoi aggiungere un valore di passo come terzo argomento: tuple_name[start:stop:step].
numbers = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
print(numbers[::2]) # (0, 2, 4, 6, 8) — every second element
print(numbers[::-1]) # (9, 8, 7, 6, 5, 4, 3, 2, 1, 0) — reversedUno slice restituisce sempre una nuova tupla — l'originale non viene mai modificata.
Ottenere la Lunghezza con len()
len() restituisce il numero di elementi in una tupla.
fruits = ("apple", "banana", "cherry", "date", "elderberry")
print(len(fruits)) # 5Questo è utile per proteggersi dall'IndexError o per iterare con un range():
for i in range(len(fruits)):
print(i, fruits[i])
# 0 apple
# 1 banana
# 2 cherry
# 3 date
# 4 elderberryVerificare l'Appartenenza con in
L'operatore in verifica se un valore esiste in una tupla, restituendo True o False.
fruits = ("apple", "banana", "cherry")
print("banana" in fruits) # True
print("mango" in fruits) # False
print("mango" not in fruits) # TrueUsa in invece di intercettare un'eccezione quando hai semplicemente bisogno di sapere se un valore è presente.
Accedere a Tuple Annidate
Le tuple possono contenere altre tuple. Per raggiungere un elemento all'interno di una tupla annidata, concatena le parentesi quadre degli indici.
matrix = ((1, 2), (3, 4), (5, 6))
print(matrix[0]) # (1, 2)
print(matrix[0][1]) # 2 — row 0, column 1
print(matrix[2][0]) # 5 — row 2, column 0La stessa tecnica funziona per annidamenti misti, come una tupla di stringhe e numeri:
record = ("Alice", 30, ("Python", "SQL"))
print(record[0]) # Alice
print(record[2]) # ('Python', 'SQL')
print(record[2][0]) # PythonOperazioni sulle Tuple
Sebbene non sia possibile modificare una tupla, puoi combinare tuple per produrne di nuove.
Concatenare Tuple
Usa + per unire due o più tuple:
Ripetere Tuple
Usa * per ripetere una tupla un dato numero di volte:
Metodi Utili delle Tuple
Le tuple hanno due metodi integrati che ti aiutano a leggere i dati:
| Metodo | Cosa restituisce |
|---|---|
tuple.count(value) | Numero di volte in cui value appare nella tupla |
tuple.index(value) | Indice della prima occorrenza di value |
colors = ("red", "green", "blue", "red", "red")
print(colors.count("red")) # 3
print(colors.index("green")) # 1Per un riferimento completo, consulta il capitolo Metodi delle Tuple.
Quando Usare una Tupla al Posto di una Lista
| Situazione | Tupla | Lista |
|---|---|---|
| I dati non devono cambiare (coordinate, valori RGB, righe del database) | Sì | No |
| Utilizzata come chiave di un dizionario | Sì | No — le liste non sono hashable |
| Leggero vantaggio di memoria/velocità per dati di sola lettura | Sì | No |
| Necessità di aggiungere, rimuovere o ordinare | No | Sì |
Se hai bisogno di modificare una tupla, consulta Aggiornare le Tuple per la soluzione comune di conversione in lista e viceversa.
Argomenti Correlati
- Tuple Python — creare tuple, tuple a elemento singolo, costruttore
tuple() - Spacchettare le Tuple — assegnare gli elementi di una tupla a variabili in una sola riga
- Iterare sulle Tuple — iterare su una tupla con
forewhile - Aggiornare le Tuple — soluzioni alternative per modificare il contenuto di una tupla
- Unire le Tuple — concatenazione e tecnica con
sum() - Metodi delle Tuple —
count()eindex()in dettaglio - Liste Python — l'alternativa mutabile alle tuple