Entendendo o Conceito de Set (Conjuntos) em Python

Foto do Leandro Hirt

Os conjuntos, ou sets em Python, são uma das estruturas de dados mais úteis da linguagem. Eles permitem armazenar coleções de valores sem repetições, sendo ideais quando precisamos lidar com listas únicas e operações matemáticas como união e interseção.

Neste artigo, você vai aprender o que é um set, como criar, como usar seus métodos e quando ele é mais eficiente do que listas ou tuplas.


O que é um Set em Python

Um set é uma coleção não ordenada e sem elementos duplicados. Isso significa que, ao criar um set, o Python automaticamente remove qualquer valor repetido.

Exemplo básico

Python

numeros = {1, 2, 3, 3, 4}
print(numeros)
Pronto para executar

Saída:

{1, 2, 3, 4}

O número 3 apareceu duas vezes na criação do conjunto, mas o Python o manteve apenas uma vez.

Os sets são úteis quando queremos garantir que não existam valores duplicados em nossos dados, como listas de e-mails, IDs de usuários ou nomes únicos.


Diferença entre Set, Lista e Tupla

TipoPermite duplicadosÉ ordenadoPode ser alterado
listSimSimSim
tupleSimSimNão
setNãoNãoSim

Essa tabela mostra que o set tem um comportamento único. Ele não mantém a ordem dos elementos e não aceita repetições.

Se você precisa apenas garantir unicidade, o set é a melhor escolha.


Como Criar um Set em Python

Existem várias maneiras de criar um set. A forma mais comum é usar chaves {} ou a função set().

Usando chaves

Python
frutas = {"maçã", "banana", "laranja"}

Usando a função set()

Python
nomes = set(["Ana", "Bruno", "Carlos"])

A diferença é que chaves criam diretamente um conjunto, enquanto set() pode converter outros tipos de dados, como listas ou tuplas, em conjuntos.


Adicionando e Removendo Elementos

Os conjuntos são mutáveis, ou seja, podemos adicionar ou remover elementos depois de criados.

Adicionar elementos

Use o método add():

Python

numeros = {1, 2, 3}
numeros.add(4)
print(numeros)
Pronto para executar

Remover elementos

Existem três métodos principais:

  • remove() → Remove o elemento e gera erro se ele não existir.
  • discard() → Remove o elemento, mas não gera erro se ele não existir.
  • pop() → Remove um elemento aleatório.

Exemplo:

Python
numeros.remove(2)
numeros.discard(5)

Operações Matemáticas com Conjuntos

Os conjuntos em Python têm métodos que simulam operações matemáticas tradicionais.

União (union)

Combina elementos de dois conjuntos, sem duplicatas.

Python

a = {1, 2, 3}
b = {3, 4, 5}
print(a.union(b))  # {1, 2, 3, 4, 5}
Pronto para executar

Interseção (intersection)

Retorna apenas os elementos comuns.

Python
print(a.intersection(b))  # {3}

Diferença (difference)

Mostra o que está em a mas não em b.

Python
print(a.difference(b))  # {1, 2}

Diferença simétrica (symmetric_difference)

Mostra o que está em um dos conjuntos, mas não em ambos.

Python
print(a.symmetric_difference(b))  # {1, 2, 4, 5}

Essas operações são muito rápidas, pois o Python usa tabelas de hash para armazenar os valores dos conjuntos.


Verificando se um Elemento Está no Conjunto

Como o set usa uma estrutura eficiente de busca, é muito rápido verificar se um elemento está presente.

Python

frutas = {"maçã", "banana", "uva"}
print("banana" in frutas)  # True
Pronto para executar

Essa operação é muito mais rápida do que procurar em uma lista, especialmente quando há muitos elementos.


Iterando sobre um Set

Mesmo que o set não tenha ordem definida, você pode percorrê-lo com um for:

Python
for fruta in frutas:
    print(fruta)

A ordem dos itens pode mudar a cada execução, pois o Python organiza internamente os elementos de forma otimizada.


Copiando e Limpando Conjuntos

Você pode copiar um conjunto com o método copy() e limpá-lo com clear().

Python

a = {1, 2, 3}
b = a.copy()
a.clear()

print(a)  # set()
print(b)  # {1, 2, 3}
Pronto para executar

Quando Usar Sets no Seu Código

Use conjuntos quando:

  • Você precisa garantir que os dados não tenham duplicados.
  • Precisa fazer comparações rápidas entre grupos de dados.
  • Deseja realizar operações matemáticas como união e interseção.

Por outro lado, evite sets quando:

  • A ordem dos elementos é importante.
  • Você precisa de índices (como lista[0]).

Convertendo Entre Estruturas

Você pode converter facilmente entre listas, tuplas e conjuntos:

Python

lista = [1, 2, 2, 3]
conjunto = set(lista)
print(conjunto)  # {1, 2, 3}

lista_nova = list(conjunto)
print(lista_nova)  # [1, 2, 3]
Pronto para executar

Isso é útil, por exemplo, para remover duplicatas de uma lista:

Python

emails = ["a@gmail.com", "b@gmail.com", "a@gmail.com"]
emails_unicos = list(set(emails))
print(emails_unicos)
Pronto para executar

Métodos Mais Usados em Sets

MétodoDescrição
add()Adiciona um elemento
remove()Remove um elemento existente
discard()Remove sem erro caso não exista
clear()Remove todos os elementos
union()Une dois conjuntos
intersection()Retorna elementos em comum
difference()Mostra elementos únicos de um conjunto
issubset()Verifica se um conjunto é subconjunto de outro
issuperset()Verifica se contém todos os elementos de outro conjunto

Exemplo Prático: Filtrando Dados Repetidos

Imagine que você tenha uma lista de visitantes de um site, com e-mails repetidos.

Python

visitantes = [
    "joao@gmail.com", "ana@gmail.com", "joao@gmail.com", "maria@gmail.com"
]

unicos = set(visitantes)
print(unicos)
Pronto para executar

Saída:

{'joao@gmail.com', 'ana@gmail.com', 'maria@gmail.com'}

Com uma única linha, você elimina repetições e mantém apenas os dados únicos.


Conclusão

Os sets em Python são ferramentas poderosas e simples de usar.
Eles ajudam a manter seus dados organizados, sem duplicações, e facilitam operações de comparação e filtragem.

Saber quando e como utilizá-los pode tornar seu código mais rápido e limpo, especialmente quando trabalhamos com grandes quantidades de informações.


Perguntas Frequentes (FAQ)

1. O que é um set em Python?
É uma coleção que não permite elementos repetidos e não mantém ordem.

2. Como criar um set?
Use {} ou a função set(), como set([1, 2, 3]).

3. Sets aceitam valores duplicados?
Não, qualquer valor repetido é automaticamente removido.

4. Posso acessar elementos por índice?
Não, conjuntos não possuem índice nem ordem fixa.

5. Como remover um item de um set?
Use remove() ou discard().

6. Como saber se algo está no set?
Use o operador in, por exemplo: "banana" in frutas.

7. Posso juntar dois sets?
Sim, com o método union() ou o operador |.

8. Qual a diferença entre union e intersection?
union combina todos os elementos, intersection pega apenas os comuns.

9. Como limpar um set?
Use clear() para remover todos os elementos.

10. Sets são rápidos?
Sim, pois usam uma estrutura chamada tabela de hash.

11. Quando evitar o uso de sets?
Quando você precisa de ordem ou acessar itens por posição.

12. Como remover duplicados de uma lista?
Converta para set: list(set(lista)).

Compartilhe:

Artigos recentes

Conteúdo do artigo

    Comece a Aprender Python Hoje!

    Mais de 1.000 alunos já aprenderam Python com a Academify

    © Academify 2020-2025. Todos os direitos reservados.