Qual é a diferença entre lista e tupla?

Publicados: 2021-11-28

Tupla e listas são um tipo de estrutura de dados usada em Python. Listas armazenam dados em uma única variável usando colchetes, enquanto Tuplas armazenam dados em uma variável com a ajuda de parênteses. Ambas as estruturas são usadas para armazenar vários valores e objetos.

Este artigo mergulhará nas principais diferenças entre lista e tupla e explorará seus casos de uso. Mas primeiro, vamos dar uma olhada rápida nas principais semelhanças entre eles:

  • Você pode armazenar itens e objetos de todos os tipos de dados em tuplas e listas.
  • Tanto a tupla quanto a lista permitem que os dados sejam acessados ​​usando seus respectivos índices.
  • Ambos os tipos de dados podem compilar e catalogar uma variedade de itens de dados.

Índice

Tupla Python vs Lista

1. Diferenças de Sintaxe

A declaração de listas e tuplas é invariavelmente diferente em Python. As listas são declaradas usando colchetes '[]', enquanto a declaração de tuplas é feita usando '()'.

Aqui está um exemplo para entender melhor como declarar listas e tuplas em Python.

lista_núm = [7,8,9,10]

tup_num = (10,11,13,14)

print(núm_lista)

print(núm_tup)

A saída para esta sequência seria.

[7,8,9,10]

(10,11,13,14)

Neste exemplo, é definida uma variável chamada núm_lista que acomoda números de 7 a 10. Também vemos que a saída está entre colchetes. No entanto, a variável definida como tup_num e contém os números de 10 a 14 exibe uma saída usando parênteses.

Python usa uma função type() que nos ajuda a entender o tipo de itens criados.

print(tipo(núm_tup))

print(tipo(núm_lista))

Saída:

<classe 'tupla'>

<classe 'lista'>

2. Mutabilidade (Mutável vs Imutável)

Tuplas e listas são contraditórias quando se trata de sua mutabilidade. Tuplas são estruturas imutáveis ​​que não podem ser modificadas ou alteradas após serem criadas. Pelo contrário, as listas são estruturas mutáveis ​​que podem ser facilmente alteradas ou modificadas após sua criação.

Apenas tuplas podem ser usadas como chave para os dicionários devido à sua natureza imutável. As listas nunca podem ser usadas como chaves quando necessário.

3. Alterando um objeto (Lista vs Tupla)

Vamos descobrir o que acontece quando uma tentativa de fazer uma alteração na lista é criada.

nome = [alex, rick, martin]

nome [0] = “roxy”

Nota : o primeiro elemento é sempre referido como 0 e não 1.

Agora vamos dar uma olhada em como seria a saída após o seguinte comando:

>>>nome

Saída:

[roxy, rick, martin]

A saída mostra como o primeiro item da lista foi alterado.

Agora vamos ver qual seria o resultado se uma tupla fosse usada.

nome = (alex, rick, martin)

Quando um item na tupla é alterado usando

nome(0) = “roxy”

A saída será:

TypeError: objeto 'tuple' não suporta atribuição de item.

Isso significa que a estrutura de dados da tupla não suporta um objeto que foi alterado posteriormente. Portanto, podemos concluir que apenas listas podem ser modificadas e não tuplas.

4. Cópias x Reutilizadas

Não se pode copiar tuplas. A razão aqui é a natureza imutável das tuplas. Por exemplo, se você executar uma tupla (tup_name), verá que ela foi restaurada para si mesma.

Exemplo:

nomes = ('allen”,”siri”, “Michaela”)

copyNames = tupla(nomes)

print(nomes é copyNames)

A saída aqui será – “True”.

Pelo contrário, se você tentar fazer o mesmo para uma lista (como ilustrado no exemplo):

Exemplo:

nomes = [“allen”, “siri”' “Michaela”]

copyNames = lista (nomes)

print(nomes é copyNames)

A saída será mostrada como “false”.

Você teria que copiar e colar os nomes completos na nova lista para obter uma saída verdadeira.

5. Tupla Python vs Lista | Diferenças de tamanho

Devido à natureza imutável da tupla, o Python aloca memórias de tupla apenas na forma de grandes blocos com sobrecarga relativamente baixa. Para listas, o Python fornece apenas blocos de memória de tamanhos menores. Como resultado, as tuplas têm apenas uma pequena quantidade de memória em comparação com as listas. No entanto, isso significa que as tuplas são muito mais rápidas de usar do que as listas quando muitos itens estão envolvidos.

6. Heterogêneo vs Homogêneo

Tuplas podem armazenar elementos de vários tipos que são heterogêneos. Pelo contrário, as listas podem armazenar características ou dados da mesma variante que são homogêneos.

Isso, no entanto, é apenas uma diferença semântica. Por exemplo, listas podem armazenar dados de vários tipos e tuplas também podem armazenar dados do mesmo tipo.

Exemplo:

list_elements = ['allen', 20, 'mary']

tuple_elements = ('allen', “mary”, 'alex')

O código funcionará perfeitamente, mesmo que a lista tenha uma combinação de números e strings.

7. Diferenças de comprimento

Listas e tuplas também variam em comprimento e tamanho. Enquanto as tuplas variam em comprimento, o comprimento da tupla é fixo. Portanto, o tamanho das listas pode ser alterado a qualquer momento, ao contrário do comprimento das tuplas que permanecem fixas uma vez definidas.

Exemplo:

list_names = ['allen', 'mary', 'alex']

list_names.append(“roxy”)

print(lista_nomes)

Saída:

['allen',' mary',' alex',' roxy']

A saída exata também poderia ter sido obtida usando a função insert() em vez da função append() quando se trata de listas.

No entanto, a estrutura de dados da tupla não nos fornece nenhuma maneira de alterar seu tamanho.

8. Casos de uso

Sob diferentes circunstâncias, pelo menos uma dessas estruturas de dados funciona bem. Geralmente depende do codificador do programa em que a estrutura de dados é usada. A estrutura de dados é escolhida com base em se os itens de dados serão reescritos no futuro.

Tuplas são muito mais vitais como estruturas de dados quando comparadas a listas porque:

  • O uso de tuplas em vez de listas pode informar ao codificador ou ao interpretador de dados para não alterar as informações.
  • Você também pode restaurar dados sem chaves usando uma tupla.
  • Tuplas são equivalentes a dicionários em Python.
  • Tuplas armazenadas dentro de uma lista são muito fáceis de ler.

A natureza imutável e hashable das tuplas as tornam um substituto perfeito para dicionários. Por outro lado, você não pode usar listas para substituir dicionários porque elas não suportam a função _hash_().

Exemplo:

key_val= {('alex', 'brave'):124} #Válido

key_val = {['alex', 'brave']:124} #Invalid

9. Listas e Tuplas de Aninhamento

Tuplas e listas podem ser armazenadas umas nas outras. Tuplas aninhadas podem conter mais tuplas. Da mesma forma, as listas aninhadas também podem ter mais listas.

10. Depuração

Tuplas são muito mais fáceis de depurar em projetos mais extensos quando comparadas a listas. Isso se deve às características imutáveis ​​das tuplas. No entanto, quando uma quantidade muito menor de dados está envolvida, sempre é recomendável confiar em listas. As tuplas também são muito mais fáceis de rastrear porque não podem ser alteradas, ao contrário das listas, onde os bugs são difíceis de seguir.

11. Funções e operações

Python tem algumas funções benéficas que podem ser aplicadas a tuplas e listas, como sorted, sum, all, min, max, lean, etc.

Quando se trata de operações, pode-se encontrar muitas semelhanças em listas e tuplas. No entanto, as listas possuem algumas funcionalidades extras que estão ausentes nas tuplas. Essas são principalmente operações de pop e inserção, além de remover e armazenar itens.

Principais conclusões

  • Tuplas têm menos funcionalidades do que listas.
  • A estrutura da tupla é imutável, enquanto a estrutura das listas é mutável.
  • Tuplas vêm em comprimentos fixos, enquanto o comprimento das listas pode variar.
  • A sintaxe da lista é representada por colchetes “[]”, enquanto a sintaxe das tuplas é apresentada na forma de parênteses “()”.
  • Tuplas consomem menos memória quando comparadas a listas.
  • A estrutura de dados de tupla é melhor quando elementos de acesso estão envolvidos.
  • A lista de funções é melhor na execução de operações específicas de exclusão e inserção.
  • As iterações implicadas em tuplas são mais rápidas do que aquelas implicadas em listas.
  • A lista pode ter vários métodos construídos, enquanto a tupla não tem nenhum.

Aprenda em detalhes sobre o âmago da questão do Python e seus conceitos avançados através do Mestrado em Ciência de Dados de 18 meses do upGrad programa em colaboração com Liverpool John Moores University e IIIT Bangalore. Com um corpo docente líder do setor à sua disposição, mais de 500 horas de material de aprendizado e aulas de resolução de dúvidas, os alunos têm a chance de dominar Python e outros fundamentos de ciência de dados para orientar suas carreiras de acordo. Além disso, o programa ajuda a desenvolver competência em mais de 14 linguagens e ferramentas como Tableau, MySQL, Excel, MongoDB e muito mais.

Então, não hesite. Entre em contato conosco hoje!

Quando usar Tuplas ou Listas?

Se você precisar que seus itens de dados sejam somente leitura, use tuplas. Os dados permanecem constantes em tuplas devido à disponibilidade garantida de dados que nunca mudam.

As listas, no entanto, são muito mutáveis. Assim, os dados neles sempre podem ser alterados. Mover, alternar, excluir e adicionar itens a uma lista é muito flexível. Eles são melhor usados ​​quando os dados exigem modificação nos estágios posteriores do ciclo do programa.

As tuplas são mais rápidas quando comparadas às listas?

Sim, criar uma tupla leva muito menos tempo do que criar uma lista. Quando são feitas listas, mais de um bloco de memória precisa ser acessado. Isso ocorre porque elementos em tuplas não podem ser removidos e substituídos, enquanto os recursos em listas podem ser alterados várias vezes durante o ciclo do programa.

Onde as tuplas e listas são usadas na vida real?

Pode-se fazer uma lista para armazenar as etapas necessárias para cozinhar um prato específico usando uma receita específica. A lista envolve acesso sequencial aos dados. Assim, pode-se acessar as etapas em ordem. Por outro lado, as Tuplas podem ser usadas para armazenar dados como a longitude ou a latitude de sua residência. Isso ocorre porque uma tupla é uma coleção de dados predefinidos. Você também pode usar a mesma tupla para armazenar as coordenadas de localização de outros lugares.