O Python tem quatro tipos nativos de coleções que irá utilizar constantemente na programação do dia a dia: lista, tupla, conjunto e dicionário. Cada um armazena grupos de valores de uma forma diferente, pelo que escolher o tipo certo pode tornar o seu código mais claro e eficiente. As listas (list) mantêm os itens em ordem e permitem alterá-los; tuplas (tuple) mantêm os itens em ordem, mas são concebidas para serem imutáveis; conjuntos (set) priorizam a unicidade; e os dicionários (dict) ligam chaves a valores para pesquisas rápidas e significativas.

Neste artigo, verá primeiro a sintaxe básica de cada tipo de coleção, juntamente com exemplos de código curtos. Depois disso, abordaremos a parte prática: quando utilizar cada um em cenários reais — como quando a ordem importa, quando precisa de unicidade ou quando pretende mapear a informação por chaves. No final, deverá ser capaz de escolher o tipo de coleção correto rapidamente e escrever código que corresponda à sua intenção.

1) Lista (list): ordenada, modificável, permite duplicados

Sintaxe:

# Criar
my_list = [1, 2, 3]
another_list = list((1, 2, 3)) # a partir de um iterável

# Adicionar/modificar
my_list.append(4)
my_list[0] = 10

Quando utilizar uma lista

Utilize uma lista quando:

  1. Precisa de ordem (o acesso baseado em índice é importante).

  2. Necessita de modificar a coleção (adicionar/remover/atualizar itens).

  3. As duplicatas são permitidas e significativas (por exemplo, um histórico de eventos).

Exemplos de casos de uso:

  • Armazenar uma sequência de passos que irá iterar

  • Manter um inventário onde possam ocorrer duplicados

2) Tupla (tuple): ordenada, imutável, permite duplicados

Sintaxe:

# Criar
my_tuple = (1, 2, 3)
single = (42,) # note-se a vírgula para uma tupla de 1 item

# Ler (acesso baseado em índice)
x = my_tuple[0]

Quando utilizar uma tupla

Utilize uma tupla quando:

  1. Deseja uma coleção ordenada.

  2. Deseja que seja imutável (não deve ser alterada).

  3. Os duplicados são permitidos.

  4. Pretende que a intenção do código seja explícita: “estes valores não devem ser alterados”.

Exemplos de casos de uso:

  • Devolver múltiplos valores de uma função

  • Armazenar as definições fixas como coordenadas/dimensões

3) Conjunto (set): não ordenado, mutável, sem duplicados

Sintaxe:

# Criar
my_set = {1, 2, 3}
empty_set = set() # usar set() para criar um conjunto vazio
another = set([1, 2, 2, 3]) # duplicados acumulam

# Adicionar / remover
my_set.add(4)
my_set.remove(2) # KeyError se 2 não estiver presente

Quando utilizar um conjunto

Utilize um conjunto quando:

  1. A ordem não importa.

  2. Pretende unicidade (sem duplicados).

  3. Necessita de testes rápidos de pertinência, como "este item já está presente?".

  4. Pretende operações de conjunto (união/interseção/diferença).

Exemplos de casos de uso:

  • Rastrear IDs de utilizadores únicos

  • Encontrar elementos comuns entre dois grupos

4) Dicionário (dict): mapeamento chave → valor (chaves únicas)

Sintaxe:

# Criar
pessoa = {"nome": "Ada", "idade": 36}

# Acessar
nome = pessoa["nome"]

# Adicionar / atualizar
pessoa["idade"] = 37

# Iterar
for k in pessoa:
    print(k)
for v in pessoa.values():
    print(v)
for k, v in pessoa.items():
    print(k, v)

Quando utilizar um dicionário

Utilize um dicionário quando:

  1. Precisa de armazenar dados como pares chave-valor.

  2. Pretende pesquisar valores por chave de forma eficiente.

  3. As chaves são únicas, pois cada chave identifica um valor.

Exemplos de casos de uso:

  • Representar um objeto com atributos (nome/idade/cargo)

  • Contar ocorrências (chaves como itens, valores como contagens)

Guia Rápido “Qual Devo Usar?”

  • Utilize listas quando necessitar de ordenação + edição + duplicados

  • Utilize tuplas quando necessita de ordenação + imutabilidade + duplicados

  • Utilize conjuntos quando necessita de artigos únicos + sem exigência de ordem + acesso rápido aos dados

  • Utilize dicionários quando necessita de pesquisa por chave + armazenamento de chaves → valor


As listas, tuplas, conjuntos e dicionários do Python resolvem problemas diferentes: as listas são ótimas para sequências ordenadas e editáveis; tuplas são ideais para dados com ordem fixa; os conjuntos ajudam a trabalhar com artigos únicos sem se preocupar com a ordem; e os dicionários permitem modelar os dados como pares chave-valor para pesquisas rápidas. Ao escolher um tipo de coleção com base nas suas necessidades de ordenação, mutabilidade, unicidade e acesso por chave, o seu código torna-se mais fácil de ler e muito mais eficiente.