CodeGym /Corsi /Python SELF IT /«Modifica» di tuple

«Modifica» di tuple

Python SELF IT
Livello 8 , Lezione 4
Disponibile

13.1 Aggiunta di elementi

Le tuple sono oggetti immutabili. Dopo aver creato una tupla, non è possibile modificarla. Ma spesso, anche se non possiamo modificare un oggetto, potremmo aver bisogno di una sua copia modificata.

Questo è esattamente ciò che è stato fatto con la classe str — ha una ventina di metodi che non modificano l'oggetto str originale, ma restituiscono una nuova stringa che corrisponde all'essenza del metodo invocato.

Gli sviluppatori di Python avrebbero potuto aggiungere alla classe tuple metodi che restituissero un nuovo oggetto quando si tenta di modificare una tupla. Ma non l'hanno fatto. Forse per non confonderci, o per un'altra ragione.

Quindi tutte le modifiche di una tupla avvengono secondo il seguente schema:


                lista = list(tupla)
                modifichiamo lista qui
                tupla2 = tuple(lista)
                        
Aggiunta di un nuovo elemento — metodo append():

Ad esempio, vuoi aggiungere un elemento a una tupla, ecco come potrebbe apparire:


my_tuple = (1, 2, 3)
my_list = list(my_tuple)
my_list.append(4)  # aggiungiamo un elemento alla lista 
my_new_tuple = tuple(my_list)

Aggiunta di un gruppo di elementi — metodo extend():

Il metodo extend() consente di aggiungere più elementi alla volta a una lista. Come argomento, il metodo accetta un oggetto iterabile (ad esempio, un'altra lista, tupla, insieme):


my_tuple = (1, 2, 3, 4)
my_list = list(my_tuple)
my_list.extend((5, 6))  # aggiungiamo elementi alla lista
my_new_tuple = tuple(my_list)
        

Inserimento al centro — metodo insert()

Il metodo insert() aggiunge un elemento alla posizione specificata nella lista. Questo metodo accetta due argomenti: l'indice al quale posizionare l'elemento e l'elemento stesso:


my_tuple = (1, 2, 3, 4)
my_list = list(my_tuple)
my_list.insert(0, 0)  # aggiungiamo 0 all'inizio della lista
my_new_tuple = tuple(my_list)
    

13.2 Modifica di elementi

Se hai bisogno di cambiare un elemento di una tupla, continui a lavorare secondo lo schema:


lista = list(tupla)
# modifichiamo lista qui
tupla2 = tuple(lista)

Assegniamo il primo elemento della tupla all'ultimo valore, e l'ultimo al primo. Ecco il codice di cui avremo bisogno:


my_tuple = (1, 2, 3, 4)

my_list = list(my_tuple)
my_list[0], my_list[-1] = my_list[-1], my_list[0]  # scambiamo i valori 
my_new_tuple = tuple(my_list)
print(my_new_tuple)  # (4, 2, 3, 1)
                

13.3 Rimozione di elementi

Rimuoviamo elementi da una tupla secondo lo stesso schema.

Facciamo un esempio in cui vogliamo rimuovere un determinato valore da una tupla


 atuple = ("apple", "banana", "cherry")

alist = list(atuple)
alist.remove("apple")
atuple = tuple(alist)

print(atuple)  # ('banana', 'cherry') 
        

Nota che alla fine assegniamo un nuovo oggetto tupla alla variabile che prima conteneva il riferimento alla tuple originale. Si può fare, ma la tuple originale non cambierà. E se da qualche parte nel codice c'era un riferimento a essa, continuerà a puntare alla tuple originale.

Rimuoviamo ora l'ultimo elemento da una tupla.

Ecco come apparirà questo codice:


atuple = ("apple", "banana", "cherry")

alist = list(atuple)
alist.pop() # rimuoviamo l'ultimo elemento
atuple = tuple(alist)
            
print(atuple)  # ('apple', 'banana')

        

Penso che la logica sia chiara. Non si possono rimuovere elementi da una tupla, ma se proprio vuoi, puoi farlo 😊

Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION