13.1 Adicionando elementos
As tuplas são objetos imutáveis. Depois de criar uma tupla, é impossível alterá-la. Mas muitas vezes, mesmo que um objeto não possa ser alterado, pode ser necessário fazer uma cópia modificada dele.
É exatamente isso que acontece com a classe str — ela tem duas dezenas de métodos que não alteram o objeto original str, mas retornam uma nova string que corresponde ao método chamado.
Os desenvolvedores do Python poderiam ter adicionado à classe tuple métodos que retornariam um novo objeto ao tentar modificar a tupla. Mas eles não fizeram isso. Talvez para não nos confundir, ou por outro motivo.
Portanto, todas as alterações na tupla ocorrem da seguinte maneira:
lista = list(tupla)
modificamos lista aqui
tupla2 = tuple(lista)
append():
Por exemplo, você quer adicionar um elemento à tupla, veja como isso pode parecer:
my_tuple = (1, 2, 3)
my_list = list(my_tuple)
my_list.append(4) # adicionamos um elemento à lista
my_new_tuple = tuple(my_list)
Adição de grupo de elementos — método extend():
O método extend() permite adicionar vários elementos à lista de uma vez. Como argumento, o método aceita um objeto iterável (por exemplo, outra lista, tupla, conjunto):
my_tuple = (1, 2, 3, 4)
my_list = list(my_tuple)
my_list.extend((5, 6)) # adicionamos elementos à lista
my_new_tuple = tuple(my_list)
Inserção no meio — método insert()
O método insert() adiciona um elemento na posição especificada na lista. Este método aceita dois argumentos: o índice onde o elemento deve ser colocado e o próprio elemento:
my_tuple = (1, 2, 3, 4)
my_list = list(my_tuple)
my_list.insert(0, 0) # adicionamos 0 no começo da lista
my_new_tuple = tuple(my_list)
13.2 Alterando elementos
Se você precisa mudar algum elemento da tupla, continuamos a trabalhar assim:
lista = list(tupla)
# modificamos lista aqui
tupla2 = tuple(lista)
Vamos atribuir ao primeiro elemento da tupla o último valor, e ao último — o primeiro. Aqui está o código que precisamos para isso:
my_tuple = (1, 2, 3, 4)
my_list = list(my_tuple)
my_list[0], my_list[-1] = my_list[-1], my_list[0] # trocamos os valores de lugar
my_new_tuple = tuple(my_list)
print(my_new_tuple) # (4, 2, 3, 1)
13.3 Removendo elementos
Removemos elementos da tupla da mesma maneira.
Vamos dar um exemplo, quando queremos remover um valor específico da tupla
atuple = ("apple", "banana", "cherry")
alist = list(atuple)
alist.remove("apple")
atuple = tuple(alist)
print(atuple) # ('banana', 'cherry')
Observe que, no final, atribuímos o novo objeto tuple à variável que anteriormente armazenava a referência ao tuple original. Isso pode ser feito, mas o tuple original não será alterado. E se houver um link para ele em algum lugar acima do código, ele continuará apontando para o tuple original.
Vamos agora remover o último elemento da tupla.
Veja como será este código:
atuple = ("apple", "banana", "cherry")
alist = list(atuple)
alist.pop() # removemos o último elemento
atuple = tuple(alist)
print(atuple) # ('apple', 'banana')
Acho que você entendeu a lógica. Não é permitido remover elementos de uma tupla, mas se você realmente quiser, é possível 😊
GO TO FULL VERSION