CodeGym /Cursos /Python SELF ES /«Cambiar» tupla

«Cambiar» tupla

Python SELF ES
Nivel 8 , Lección 4
Disponible

13.1 Añadir elementos

Las tuplas son objetos inmutables. Después de crear una tupla, es imposible cambiarla. Pero muy a menudo, incluso si un objeto no se puede cambiar, puede que necesitemos una copia modificada del mismo.

Es exactamente lo que ocurre con la clase str: tiene dos docenas de métodos que no modifican el objeto original str, sino que devuelven una nueva cadena que corresponde a la esencia del método invocado.

Los desarrolladores de Python podrían haber añadido a la clase tuple métodos que devolvieran un nuevo objeto al intentar modificar la tupla. Pero no lo hicieron. Quizás para no confundirnos, o por alguna otra razón.

Por lo tanto, todos los cambios en una tupla siguen el siguiente esquema:


                lista = list(tupla)
                modificamos lista aquí
                tupla2 = tuple(lista)
                        
Añadir un nuevo elemento — método append():

Por ejemplo, quieres añadir un elemento a la tupla, así es como podría verse:


my_tuple = (1, 2, 3)
my_list = list(my_tuple)
my_list.append(4)  # añadir un elemento a la lista 
my_new_tuple = tuple(my_list)

Añadir un grupo de elementos — método extend():

El método extend() permite añadir varios elementos a la lista de una vez. Como argumento, el método acepta un objeto iterable (por ejemplo, otra lista, una tupla, un conjunto):


my_tuple = (1, 2, 3, 4)
my_list = list(my_tuple)
my_list.extend((5, 6))  # añadir elementos a la lista
my_new_tuple = tuple(my_list)
        

Insertar en el medio — método insert()

El método insert() añade un elemento en la posición indicada en la lista. Este método acepta dos argumentos: el índice donde se debe colocar el elemento, y el propio elemento:


my_tuple = (1, 2, 3, 4)
my_list = list(my_tuple)
my_list.insert(0, 0)  # añadir 0 al inicio de la lista
my_new_tuple = tuple(my_list)
    

13.2 Cambiar elementos

Si necesitas cambiar algún elemento de la tupla, continuamos trabajando de la misma forma:


lista = list(tupla)
# modificamos lista aquí
tupla2 = tuple(lista)

Vamos a asignar el último valor al primer elemento de la tupla, y al último el primero. Aquí está el código que necesitaremos para esto:


my_tuple = (1, 2, 3, 4)

my_list = list(my_tuple)
my_list[0], my_list[-1] = my_list[-1], my_list[0]  # intercambiamos valores 
my_new_tuple = tuple(my_list)
print(my_new_tuple)  # (4, 2, 3, 1)
                

13.3 Eliminar elementos

Eliminar elementos de una tupla sigue el mismo esquema.

Vamos a dar un ejemplo de cuando queremos eliminar un valor especifico de la tupla


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

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

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

Nota que al final asignamos el nuevo objeto tuple a la variable que antes guardaba la referencia al original tuple. Así se puede hacer, pero el tuple original no cambia. Y si en algún lugar del código anterior había una referencia a él, seguirá apuntando al tuple original.

Ahora eliminemos el último elemento de la tupla.

Así es como se verá el código:


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

alist = list(atuple)
alist.pop() # eliminar el último elemento
atuple = tuple(alist)
            
print(atuple)  # ('apple', 'banana')

        

Creo que entiendes la lógica. No se pueden eliminar elementos de una tupla, pero si realmente lo deseas, se puede 😊

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