Tipos de estruturas de dados em Python: lista, tupla, conjuntos e dicionário
Publicados: 2020-12-30Python é uma linguagem favorita de todos os tempos para todos os entusiastas de Data Science. A natureza versátil e a abordagem fácil de entender ajudam os desenvolvedores a se concentrar mais na compreensão das tendências nos dados e na obtenção de insights significativos, em vez de gastar tempo para corrigir um pequeno bug de ponto e vírgula ou fechar o colchete. Sendo o Python a linguagem mais popular entre os iniciantes, é adaptado rapidamente, por isso torna-se importante ter um bom domínio dessa linguagem.
Estruturas de dados é um conceito essencial em qualquer linguagem de programação. Ele define como as variáveis e os dados podem ser armazenados e recuperados da memória da melhor maneira possível, dependendo do tipo de dados. Também define a relação entre as variáveis, o que auxilia na decisão das operações e funções que devem ser realizadas sobre elas. Vamos entender como o Python gerencia os dados.
Índice
Tipos de estrutura de dados em Python
1. Lista
Esta é a estrutura de dados mais simples e comumente usada na programação Python. Como o nome sugere, é uma coleção de itens a serem armazenados. Os itens armazenados podem ser de qualquer tipo numérico, string, booleano, objetos, etc, o que os torna heterogêneos. Isso significa que uma lista pode ter qualquer tipo de dado e podemos iterar sobre essa lista usando qualquer tipo de loop.
Os elementos armazenados geralmente estão associados a um índice que define a posição na lista. A numeração do índice começa do zero. A lista é mutável, o que significa que os elementos da lista podem ser adicionados, removidos ou alterados mesmo após sua definição. Essa estrutura de dados é como arrays em outras linguagens que geralmente são homogêneas, o que significa que apenas um tipo de dado pode ser armazenado em arrays. Algumas operações básicas em Listas são as seguintes:
- Para declarar uma lista em Python, coloque-a entre colchetes:
sample_list = ['upGrad', '1', 2]
- Para inicializar uma lista vazia:
lista_amostra = lista()
- Adicione elementos à lista:
sample_list.append('new_element')
- Remova os elementos da lista:
sample_list.remove(<nome do elemento>) remove o elemento específico
del sample_list[<element index num>] remove o elemento nesse índice
sample_list.pop(<element index num>) remove o elemento desse índice e retorna esse elemento removido
- Para alterar o elemento em qualquer índice:
sample_list[<qualquer índice>] = novo item
- Fatiar : Este é um recurso importante que pode filtrar itens na lista em instâncias específicas. Considere que você precisa apenas de um intervalo específico de valores da lista, então você pode simplesmente fazer isso:
sample_list[start: stop: step] onde step define o intervalo entre os elementos e por padrão é 1.
Saiba mais sobre: Como criar uma árvore de decisão perfeita
2. Tupla
Esta é outra estrutura de dados que armazena dados sequencialmente, o que significa que os dados adicionados permanecem de forma ordenada como as listas. Seguindo as mesmas linhas, Tuple também pode armazenar dados heterogêneos, e a indexação permanece a mesma.
A principal diferença entre os dois é que os elementos armazenados na tupla são imutáveis e não podem ser alterados após a definição. Isso significa que você não pode adicionar novos elementos, alterar itens existentes ou excluir elementos da tupla. Os elementos só podem ser lidos por meio de indexação ou descompactação sem substituição.
Isso torna a tupla mais rápida em comparação com a lista em termos de criação. A tupla é armazenada em um único bloco de memória, mas uma lista requer dois blocos, um de tamanho fixo e o outro de tamanho variável para armazenar dados. Deve-se preferir uma tupla a uma lista quando o usuário tem certeza de que os elementos a serem armazenados não requerem nenhuma modificação adicional. Algumas coisas a serem consideradas ao usar uma tupla:
- Para inicializar uma tupla vazia:
sample_tuple = tuple()
- Para declarar uma tupla, coloque os itens entre colchetes:
sample_tuple = ('upGrad', 'Python', 'ML', 23432)
- Para acessar os elementos da tupla:
sample_tuple[<index_num>]
3 partidas
Em matemática, um conjunto é uma coleção bem definida de elementos únicos que podem ou não estar relacionados entre si. Na tupla e na lista, pode-se armazenar muitos elementos duplicados sem falhas, mas a estrutura de dados do conjunto aceita apenas itens exclusivos.

Os elementos de um conjunto são armazenados de forma desordenada, o que significa que os itens são armazenados aleatoriamente no conjunto e não há posição definida ou índice suportado, nem o fatiamento é permitido em um conjunto. O conjunto em si é mutável, mas os elementos devem ser imutáveis porque a maneira como os conjuntos funcionam são hashing desses elementos e, nesse processo, apenas elementos imutáveis podem ser hash.
Os elementos podem ser adicionados ou removidos do conjunto, mas não podem ser alterados, pois não há conceito de indexação e, portanto, os elementos podem ser alterados. Como na matemática, aqui também todas as operações de conjunto podem ser realizadas, como união, interseção, diferença, disjunção. Vejamos como implementá-lo:
- Para inicializar um conjunto vazio:
amostra_set = set()
- Adicione elementos ao conjunto:
sample_set.add(item) Isso adiciona um único item ao conjunto
sample_set.update(items) Isso pode adicionar vários itens por meio de uma lista, tupla ou outro conjunto
- Remova os elementos do conjunto:
sample_set.discard(item) Remove o elemento sem aviso se o elemento não estiver presente
sample_set.remove(item) Gera um erro se o elemento a ser removido não estiver presente.
- Operações de conjunto (assuma dois conjuntos inicializados: A e B):
A | B ou A.sindicato(B): operação do sindicato
A e B ou A.interseção(B): Operação de interseção
A – B ou A.diferença(B): Diferença de dois conjuntos
A ^ B ou A.symmetric_difference(B): diferença simétrica de conjuntos
Confira: Data Frames em Python
4. Dicionário
Esta é a estrutura de dados mais útil em Python, que permite que os elementos de dados sejam armazenados em um par chave-valor. A chave deve ser um valor imutável e o valor pode ser um item mutável. Este conceito é como um dicionário real, onde temos as palavras como chaves e seus significados como valores. Um dicionário armazena esses pares de forma não ordenada e, portanto, não há conceito de índice nessa estrutura de dados. Algumas coisas importantes relacionadas a isso:
- Para inicializar um dicionário vazio:
sample_dict = dict()
- Para adicionar elementos ao dicionário:
sample_dict[chave] = valor
Outra maneira de fazer isso é sample_dict = {key: value}
Se você imprimir este dicionário, a saída seria: {'key1': value, 'key2': value … }
- Para obter as chaves e valores do dicionário:
sample_dict.keys(): retorna a lista de chaves
sample_dict.values(): retorna a lista de valores
sample_dict.items(): retorna o objeto de visualização de pares chave-valor como tupla na lista
Aprenda cursos de ciência de dados das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.
Conclusão
É importante compreender o conhecimento básico de estruturas de dados em Python. Estando na indústria de dados, diferentes estruturas de dados podem ajudar a obter uma melhor solução alternativa dos algoritmos subjacentes. Isso torna o desenvolvedor mais ciente das melhores práticas de codificação para obter os resultados com eficiência. O uso de cada estrutura de dados é altamente baseado em situações e requer prática rigorosa.
Qual é a importância das estruturas de dados?
As estruturas de dados são um dos pilares fundamentais de qualquer linguagem de programação. Eles definem como os dados serão armazenados e manipulados na memória. Os conceitos de estruturas de dados permanecem os mesmos, não importa de qual linguagem de programação estejamos falando.
As estruturas de dados mais comuns incluem arrays, listas, pilhas, filas, árvores, hashmaps e gráficos. Alguns deles são embutidos, enquanto outros precisam ser implementados pelo usuário com a ajuda de estruturas de dados pré-definidas.
Como posso desenvolver uma forte compreensão das estruturas de dados?
Os conceitos fundamentais das implementações e funcionamento de qualquer estrutura de dados devem ser o primeiro passo a ser dado. Depois de se familiarizar com os conceitos teóricos e trabalhar, você pode começar com a parte de codificação.
Você deve sempre estudar as complexidades de tempo e de espaço de qualquer algoritmo ou estrutura de dados em que esteja trabalhando. Isso lhe dará uma visão adequada do conceito e você poderá resolver qualquer questão que exija essa estrutura de dados específica.
Quando uma lista Python é preferida para armazenar dados?
Uma lista pode ser usada para armazenar vários valores com diferentes tipos de dados e pode ser acessada apenas por seus respectivos índices. Quando você precisa realizar operações matemáticas sobre os elementos, uma lista pode ser usada, pois permite operar matematicamente os elementos diretamente.
Como uma lista pode ser redimensionada, ela pode ser usada para armazenar os dados quando você não tiver certeza sobre o número de elementos a serem armazenados.