Tuple

Una tupla in Python è simile a una lista. La differenza tra le due è che non possiamo cambiare gli elementi di una tupla una volta assegnata, mentre possiamo cambiare gli elementi di una lista.

Una tupla viene creata ponendo tutti gli elementi tra parentesi tonde, separati da virgole.

Una tupla può avere un numero qualsiasi di elementi e possono essere di tipo diverso (intero, float, lista, stringa, ecc.).

mia_tupla = ()
print (mia_tupla)

mia_tupla = (1, 2, 3)
print (mia_tupla)

mia_tupla = (1, "Ciao", 8.8)
print (mia_tupla)

Accesso agli elementi di una tupla

Possiamo usare le parentesi quadre e l'indice per accedere ad un elemento in una tupla, dove l'indice parte da 0 come nelle liste.

Così, una tupla con 5 elementi avrà indici da 0 a 4.

Provando ad accedere ad un indice al di fuori dell'intervallo dell'indice della tupla (6,7,... in questo esempio) l'interprete Python restituirà un IndexError.

L'indice deve essere un intero, quindi non possiamo usare float o altri tipi. Altrimenti...TypeError.

tupla = ("a", "b", "c", "d", "e", "f")

print (tupla[0])  
print (tupla[5])
a
f  

Indici negativi

Gli indici negativi per le tuple possono essere usati per accedere agli elementi partendo dalla fine di una tupla. Questo può essere usato per accedere a singoli elementi di una tupla o come parte della definizione di un intervallo.

Per selezionare l'ultimo elemento, nome_tupla[-1].

tupla = ("a", "b", "c", "d", "e", "f")

print (tupla[-1])  
print (tupla[-5])
f
b

Slicing

Lo slicing è uguale a quello della lista.

La sintassi è: nome_tupla[indice_iniziale:indice_finale].
Da tenere a mente che questa porzione di lista includerà l'indice_iniziale ed escluderà l'indice_finale.

tupla = ("a", "b", "c", "d", "e", "f")

print (tupla[1:4])  
print (tupla[:-5])  
('b', 'c', 'd')
('a',)

Cambiare una tupla

A differenza delle liste, le tuple sono immutabili.

Ciò significa che gli elementi di una tupla non possono essere modificati una volta assegnati.

Ma, se l'elemento è esso stesso un tipo di dato mutevole come una lista, i suoi elementi annidati possono essere modificati.

Possiamo anche assegnare una tupla a valori diversi (riassegnazione).

Come già detto, non possiamo cambiare gli elementi in una tupla. Ciò significa che non possiamo cancellare o rimuovere elementi da una tupla.
La cancellazione completa di una tupla, tuttavia, è possibile, utilizzando la parola chiave del.

tupla = (4, 2, 3, [6, 5])

tupla[1] = 9


tupla[3][0] = 9    
print (tupla)

tupla = ("t", "u", "t", "t", "o", "f", "a", "r", "e" )
print (tupla)
TypeError: 'tuple' object does not support item assignment