Skip to content

Aggiornare le tuple in Python (aggiungere, modificare, rimuovere elementi nelle tuple)

Python

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.