10.1 Tupla e le sue proprietà
Le tuple fanno parte dei quattro tipi di collezioni integrate in Python.
Come già sai, in Python ci sono diversi tipi di dati integrati che permettono di memorizzare gruppi di oggetti. Ci sono list
— lista, tuple
— tupla, set
— insieme, dictionary
— dizionario. Oggi esaminiamo il secondo e uno dei più semplici — la tupla.
La tupla (tuple)
permette di memorizzare diversi elementi. Ogni elemento ha il suo numero d'ordine, che rende la tupla ordinata — ordered. In questo assomiglia a una lista.
Non puoi cambiare una tupla — una volta creata, rimane immutabile, il che la rende ideale per memorizzare dati che non dovrebbero cambiare nel programma. Ecco perché la sua seconda caratteristica è l'immutabilità (immutable).
Per quanto riguarda i duplicati — nella tupla puoi memorizzare elementi uguali più volte — allow duplicates. Ancora una volta, molto simile a una lista.
Utile. Puoi pensare a una tupla come a una lista immutabile che al posto delle parentesi quadre []
usa le tonde ()
.
10.2 Creazione di una tupla
Le tuple sono sequenze di elementi immutabili, che possono essere create in diversi modi. Ecco i più comuni:
Dichiarazione diretta:
Le tuple possono essere create direttamente utilizzando le parentesi tonde () e le virgole per separare gli elementi.
tuple1 = (1, 2, 3)
tuple2 = ("apple", "banana", "cherry", "apple", "cherry")
tuple3 = (1, "apple", True)
Senza parentesi:
Python permette di creare tuple senza usare le parentesi, semplicemente separando gli elementi con virgole.
tuple1 = 1, 2, 3
tuple2 = "apple", "banana", "cherry", "apple", "cherry"
tuple3 = 1, "apple", True
Tupla di un solo elemento:
Per creare una tupla con un solo elemento è necessario mettere una virgola dopo l'elemento
.
tuple1 = (1,)
tuple2 = ("apple",)
tuple3 = (True,)
Utilizzo di tuple()
:
La funzione tuple()
converte un oggetto iterabile in una tupla. Questo può essere una lista, una stringa o qualsiasi altro oggetto iterabile.
list_to_tuple = tuple([1, 2, 3])
10.3 Decomprimere gli elementi della tupla
Lavorando con le tuple, puoi comprimere diversi elementi in una tupla o decomprimere una tupla in più variabili, il che semplifica il codice:
Decompressione di base
Esempio di decompressione di una tupla in variabili:
my_tuple = (1, 2, 3)
x, y, z = my_tuple
Qui le variabili x
, y
e z
ricevono i valori 1
, 2
e 3
rispettivamente.
Decompressione avanzata
Python supporta anche la decompressione avanzata, che consente di estrarre parti della tupla in una lista, utilizzando il simbolo *:
a, *b, c = (1, 2, 3, 4, 5) # a = 1, b = [2, 3, 4], c = 5
In questo esempio, a
e c
ricevono il primo e l'ultimo valore, mentre b
diventa una lista con tutti gli altri valori.
Uso nelle funzioni
La decompressione delle tuple è spesso utilizzata nel passaggio dei parametri nelle funzioni. È particolarmente utile quando una funzione accetta un numero variabile di argomenti o quando gli argomenti sono preconfezionati in tuple o liste:
def func(a, b, c):
print(a, b, c)
values = (1, 2, 3)
func(*values)
Caratteristiche dell'uso
La decompressione delle tuple richiede che il numero di elementi della tupla corrisponda esattamente al numero di variabili a cui vengono assegnati, altrimenti verrà generato un errore. Tuttavia, l'uso di *
per raccogliere gli elementi in eccesso consente di evitare questo errore, rendendo il codice più flessibile ai cambiamenti nei dati.
10.4 Elenco dei metodi
Le tuple sono oggetti immutabili, quindi hanno quasi nessun metodo. Solo due 😊
Funzione count(x)
:
Restituisce il numero di volte che x
appare nella tupla. Utile per contare il numero di elementi specifici.
t = (1, 2, 3, 2, 4, 2)
print(t.count(2)) # Stampa 3
Funzione index(x)
:
Restituisce l'indice della prima occorrenza dell'elemento x
nella tupla. Se l'elemento non viene trovato, viene generata l'eccezione ValueError
.
t = (1, 2, 3, 2, 4, 2)
print(t.index(3)) # Stampa 2
Anche se questi sono tutti i metodi della classe tuple, non significa che non si possa fare nulla con essa. Si può, solo che sarà un po' più complesso.
GO TO FULL VERSION