Entenda o que é, e quais as diferenças entre Listas, Sets, Tuplas e Dicionários no Python

Um guia sobre coleções no Python

Anderson Oliveira
Ensina.AI
6 min readMar 26, 2021

--

Photo by Mika Baumeister on Unsplash

E aí Dev, beleza?

Se você está começando a estudar e a desenvolver com Python, provavelmente já teve a necessidade de saber o que é ou o que têm de diferente entre os tipos de coleções do Python.

Neste post veremos sobre alguns tipos que manipulam dados como as listas, sets, tuplas e dicionários. Vamos nessa?

Mas afinal, o que são coleções de dados?

Coleção é uma estrutura que permite armazenar múltiplos itens ou objetos, dentro de uma única unidade. As operações que normalmente podem ser feitas em coleções são: adição, remoção, acesso, pesquisa, ordenação entre outros.

Listas

Bem, começarei pelas listas. Esse tipo de coleção é uma estrutura de dados indexados e armazenados em sequência, onde cada elemento possui uma posição que é identificada por um índice. O primeiro elemento à esquerda da lista é o índice 0 e em cada elemento da sequência o valor do índice é incrementado (+1). Ainda é possível realizar a indexação dos itens por valores negativos, nesse caso a indexação ocorre da direita para esquerda com decremento (-1). Na imagem a seguir é apresentado um exemplo de lista com a indexação positiva e negativa.

Lista Python — Índices positivos e negativos — créditos da imagem: tutorialandexample.com

Para criar uma coleção do tipo lista no Python devemos adicionar os itens entre colchetes e separados por vírgula.

Uma lista no Python pode armazenar qualquer tipo de dado primitivo (string, int, float, etc.). Também é possível criar listas dentro de listas — os populares nested list.

Outra característica das listas é que elas são mutáveis. Mutáveis? Como assim?🤔

A fim de facilitar, vamos conferir primeiro o que significa o oposto. Em programação orientada a objetos e funcional, objeto imutável é aquele que, após a criação, seu estado não pode ser modificado. Já os objetos mutáveis podem ser alterados posteriormente. Então, pelo fato das listas no Python serem mutáveis, pode-se adicionar, remover, alterar ou excluir seus itens.

Para acessar determinado item de uma lista, devemos buscar o elemento requerido por meio de seu índice.

Para alterar o valor de um item específico da lista, é necessário acessá-lo por meio de seu índice e na sequência atribuir o novo valor ao item conforme o código abaixo:

Para adicionar um novo item em uma lista o Python fornece os métodos de append e insert.

Com o método append, o elemento é adicionado ao final da lista, conforme o exemplo a seguir:

Já para o método insert, é necessário passar dois parâmetros: o primeiro para indicar em qual posição será incluído o novo item. O segundo é o item a ser inserido na lista.

Para remover itens da lista também existem dois métodos: o remove e o pop.

Com o método remove devemos passar por parâmetro o próprio item a ser excluído da lista.

Já com o método pop, é necessário passar por parâmetro o índice do item a ser excluído da lista.

O Python fornece ainda diversas ferramentas e muitos outros métodos que facilitam o trabalho com listas. Para conhecer e aprender mais, recomendo a boa e velha documentação:

https://docs.python.org/3/tutorial/datastructures.html#more-on-lists

Quando utilizar listas? É recomendado a utilização de listas ao trabalhar com estruturas homogêneas, ou seja, quando todos os elementos são do mesmo tipo (strings, int, float, etc.), e/ou quando existe a necessidade de alterar os itens da coleção.

Tuplas

Após entender as listas, inteirar-se sobre tuplas é uma tarefa simples!😁

A estrutura do tipo tupla é muito semelhante à da lista. A grande diferença é que a tupla é imutável, ou seja, após a criação não é possível realizar alterações no seu estado.

Para criar tuplas no Python devemos adicionar os elementos entre parênteses e separados por vírgula.

Assim como as listas, também é possível acessar um item da tupla pelo seu índice.

Quando uma tupla possui apenas um item, devemos adicionar uma vírgula após o elemento para que o Python reconheça o objeto como tupla. Caso contrário, é obtido um objeto do tipo String.

Para saber mais sobre tuplas recomendo a documentação do Python:

https://docs.python.org/3/tutorial/datastructures.html#tuples-and-sequences

Quando utilizar tuplas? Tuplas podem ser utilizadas quando os seus itens são pré-definidos e geralmente não necessitam de alterações, alguns exemplos: meses do ano, datas comemorativas, dias da semana, estações do ano, nomes de cidades, etc. Também é recomendável sua utilização quando trabalhamos com dados heterogêneos, ou seja, com elementos de tipos diferentes.

Sets

Chegamos aos sets. Esse é meu tipo favorito de coleção! 😁

Sets são coleções de elementos não-ordenados que não permite itens duplicados, ou seja, seus elementos são únicos como podemos ver no exemplo colecoes_sets02.py.

Para declarar um set, os elementos devem estar entre chaves e separados por vírgula.

Para criar um set vazio, é necessário utilizar a função set.

O código a seguir apresenta um set que ignora o item repetido na sua estrutura— Metallica — e retorna apenas os itens únicos.

Os sets são mutáveis o que permite alterar, excluir ou adicionar itens, porém, seus itens devem ser imutáveis como string, int ou tuplas.

Os sets possuem métodos para operações matemáticas como união, interseção, diferença e diferença assimétrica. Na imagem a seguir podemos ver o comportamento de cada uma dessas operações e no código de exemplo colecoes_sets03.py apresento um pouco desses recursos. 😉

Operações Python Sets, créditos da imagem: learnbyexample.org

Para adicionar itens em um set o Python fornece o método add:

Para remover itens do set, podemos utilizar as funções remove e discard, para ambos é necessário passar o próprio elemento por parâmetro na função.

Para saber mais sobre os sets, confira a documentação do Python:

https://docs.python.org/3/tutorial/datastructures.html#sets

Quando utilizar sets? É recomendável a utilização desse tipo de coleção quando queremos trabalhar com elementos únicos. Também podemos utilizar os sets quando existe a necessidade de realizar operações matemáticas com elementos de diferentes sets. Lembre-se que pelo fato de um set ser não-ordenado, os elementos podem estar em uma ordem diferente a cada execução do código.

Dicionários

Por fim, mas não menos importante, os dicionários!😄

Dicionários são estruturas que compreendem um conjunto de pares: chave e valor. Cada chave individual possui um valor associado. Esse tipo de associação se dá o nome de coleção associativa desordenada.

Dicionários chave e valor, créditos da imagem: kmee.github.io

Assim como as listas, os dicionários são mutáveis.

O conteúdo de um dicionário é delimitado por chaves e os elementos são separados por vírgula.

Para acessar um item de um dicionário, deve-se utilizar a chave associativa.

Também é possível acessar um elemento do dicionário por meio do método get. Para tal, é necessário passar dois parâmetros: a chave do elemento a ser encontrado e uma mensagem de retorno padrão ao usuário para casos em que não é possível encontrar o item.

Existem duas maneiras de adicionar um elemento no dicionário. A primeira é por meio da função update, nela é necessário passar por parâmetro uma chave com valor associado. A segunda forma é pela criação de uma chave com atribuição de valor associado a ela.

Para remover um item do dicionário o Python fornece duas maneiras: pop e del. Ao utilizar o método pop é necessário passar dois parâmetros: a chave associativa do item, e o parâmetro de valor None. Este segundo parâmetro deve ser utilizado para que, caso a chave não exista, a resposta seja “None” e não a mensagem de erro “KeyError” — quando tentamos remover uma chave inexistente. Já com a instrução del é necessário informar apenas o parâmetro da chave associativa.

Os dicionários possuem muitos outros recursos. Para saber mais, acesse o link da documentação do Python:

https://docs.python.org/3/tutorial/datastructures.html#dictionaries

Quando utilizar dicionários? Devemos utilizar dicionários quando existe a necessidade de armazenar dados de forma organizada, visto que, com o dicionário é possível mapear o valor de um elemento com uma chave única.

Conclusão

Nesse post apresentei um pouco sobre cada tipo de coleção do Python a fim de exemplificar as diferenças e o uso de cada um deles.

Para ver ou baixar todos os códigos fontes desse post, clique aqui.

Espero que esse conteúdo tenha lhe ajudado! Caso queira deixar algum feedback ou conversar sobre tecnologias, me chama no Linkedin, é só clicar aqui! Valeu e até a próxima!✌️

Referências

https://docs.python.org/3/tutorial/datastructures.html

https://panda.ime.usp.br/pensepy/static/pensepy/index.html

https://www.phylos.net/2021-03-08/python-sequencias-e-colecoes/

https://www.learnbyexample.org/python-set/

--

--

Anderson Oliveira
Ensina.AI

Pai da Isabela, desenvolvedor no Banco PAN, apaixonado por tecnologia e entusiasta do mercado financeiro.