W3docs

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]

python— editable, runs on the server

Accedere a un indice che non esiste genera un IndexError:

colors = ("red", "green", "blue")
print(colors[5])  # IndexError: tuple index out of range

Indicizzazione 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")
python— editable, runs on the server

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)  — reversed

Uno 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))  # 5

Questo è 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 elderberry

Verificare 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)  # True

Usa 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 0

La 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])    # Python

Operazioni 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:

python— editable, runs on the server

Ripetere Tuple

Usa * per ripetere una tupla un dato numero di volte:

python— editable, runs on the server

Metodi Utili delle Tuple

Le tuple hanno due metodi integrati che ti aiutano a leggere i dati:

MetodoCosa 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"))  # 1

Per un riferimento completo, consulta il capitolo Metodi delle Tuple.

Quando Usare una Tupla al Posto di una Lista

SituazioneTuplaLista
I dati non devono cambiare (coordinate, valori RGB, righe del database)No
Utilizzata come chiave di un dizionarioNo — le liste non sono hashable
Leggero vantaggio di memoria/velocità per dati di sola letturaNo
Necessità di aggiungere, rimuovere o ordinareNo

Se hai bisogno di modificare una tupla, consulta Aggiornare le Tuple per la soluzione comune di conversione in lista e viceversa.

Argomenti Correlati

Pratica

Pratica
What are the ways to access items in a Python tuple?
What are the ways to access items in a Python tuple?
Was this page helpful?