Olá. Se tuplas são imutáveis, qual o sentido de utiliza-las e não um array? Se perco a liberdade de poder fazer alguma modificação dentro do objeto que estou trabalhando?
Olá. Se tuplas são imutáveis, qual o sentido de utiliza-las e não um array? Se perco a liberdade de poder fazer alguma modificação dentro do objeto que estou trabalhando?
Oii Leonardo, tudo bem?
Realmente elas parecem não ter muita lógica perto de uma lista/array, mas ela ser imutável pode não ser uma desvantagem! rs (e caso você queira adicionar mais algum elemento à tupla, você consegue, mas o ID da tupla é alterado, ou seja, é uma nova tupla com um elemento a mais).
Uma das coisas que podemos fazer com uma tupla, por ela ser imutável, é usar ela como chave de dicionário do Python, se fosse usar uma lista por exemplo, você teria um erro como retorno.
tupla = (1,2)
lista = [1,2]
c = {tupla : 1} # ok
c = {lista : 1} # erro
Geralmente os elementos que temos dentro das tuplas são heterogêneos e nas listas eles são homogêneos, ou seja, listas são indicadas para objetos do mesmo tipo/assunto (por exemplo, todos os tipos de bananas conhecidas ou os candidados à um cargo/vaga) e as tuplas normalmente são usadas para objetos heterogêneos.
Além desses motivos, cito também que as tuplas podem ser reutilizadas, e são compactas. Usando um exemplo com muitos elementos dentro de uma tupla e de uma lista, mesmo número de elementos para cada, o processamento da tupla será mais rápido.
Mas mesmo com essas lista de 'vantagens', depende muito da aplicação que você está fazendo, com base na necessidade do momento.
Espero ter solucionado sua dúvida! Qualquer coisa, estou por aqui :)
Bons estudos ^^