
In Python, poiché la tupla è immutabile, non è possibile aggiornarla, ovvero non è possibile aggiungere, modificare o rimuovere elementi (elementi) nella tupla.
tupla rappresenta dati che non devi aggiornare, quindi utilizzare quindi elenco anziché tupla se devi aggiornarlo. Tuttavia, se hai davvero bisogno di aggiornare la tupla, puoi convertirla in lista, aggiornarla e quindi trasformarla di nuovo in tupla.
In questo articolo vengono descritti i seguenti contenuti.
- tupla è immutabile
- Aggiungi un elemento alla tupla
- Aggiungi/inserisci elementi alla tupla
- Cambia gli elementi in tupla
- Rimuovere gli elementi in tupla
Nota che, sebbene parole come “aggiungi”, “modifica” e “rimuovi” siano usate per comodità, in realtà viene generato un nuovo oggetto e l’oggetto originale non viene aggiornato.
tupla è immutabile
Usa la seguente tupla come esempio.
t = (0, 1, 2)
print(t)
# (0, 1, 2)
print(type(t))
# <class 'tuple'>
Puoi ottenere elementi per indice [] o slice [:] come liste.
print(t[0])
# 0
print(t[:2])
# (0, 1)
Perché la tupla è immutabile, non puoi assegnare un nuovo valore a un elemento.
# t[0] = 100
# TypeError: 'tuple' object does not support item assignment
I metodi distruttivi (= metodi che aggiornano l’oggetto originale) come append() in list non sono definiti in tupla.
# t.append(100)
# AttributeError: 'tuple' object has no attribute 'append'
Aggiungi un elemento alla tupla
tuple è immutabile, ma puoi concatenare più tuple con l’operatore +. A questo punto, l’oggetto originale invariato e viene generato rimane un nuovo oggetto.
t_add = t + (3, 4, 5)
print(t_add)
# (0, 1, 2, 3, 4, 5)
print(t)
# (0, 1, 2)
Possono essere concatenate tupla solo. Non può essere concatenato con altri tipi come lista.
# print(t + [3, 4, 5])
# TypeError: can only concatenate tuple (not "list") to tuple
Se vuoi aggiungere un elemento a una tupla, puoi concatenare una tupla con un elemento.
t_add_one = t + (3,)
print(t_add_one)
# (0, 1, 2, 3)
Nota che una tupla con un elemento richiede una virgola alla fine.
Aggiungi/inserisci elementi alla tupla
Se vuoi aggiungere nuovi elementi all’inizio o alla fine in una tupla, puoi concatenarla con l’operatore + come descritto sopra, ma se vuoi inserire un elemento in qualsiasi posizione, devi nuovo una tupla in una lista .
Converti tupla in lista con list().
l = list(t)
print(l)
# [0, 1, 2]
print(type(l))
# <class 'list'>
Inserisci un elemento con inserto().
l.insert(2, 100)
print(l)
# [0, 1, 100, 2]
Converti elenco in tupla con tuple().
t_insert = tuple(l)
print(t_insert)
# (0, 1, 100, 2)
print(type(t_insert))
# <class 'tuple'>
Cambia gli elementi in tupla
È possibile modificare gli elementi della tupla allo stesso modo.
Converti tupla in elenco, aggiornalo e trasformalo di nuovo in tupla.
l = list(t)
l[1] = 100
t_change = tuple(l)
print(t_change)
# (0, 100, 2)
Rimuovere gli elementi in tupla
Puoi anche rimuovere elementi della tupla allo stesso modo.
l = list(t)
l.remove(1)
t_remove = tuple(l)
print(t_remove)
# (0, 2)
Nell’esempio sopra utilizzatore viene remove(), ma puoi anche usare pop() e del.
