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)
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 😊
GO TO FULL VERSION