Entendendo o Conceito de Set (Conjuntos) em Python

Tempo de leitura: 6 minutos
Ilustração representando conjuntos (sets) em Python

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:

Facebook
WhatsApp
Twitter
LinkedIn

Conteúdo do artigo

    Artigos relacionados

    Símbolo de repetição ao lado do logotipo do Python pensativo, representando o conceito de loops na programação em Python.
    Fundamentos
    Foto do Leandro Hirt

    Como Funcionam os Loops em Python

    Os loops em Python são estruturas fundamentais que permitem repetir um conjunto de instruções várias vezes sem precisar escrever o

    Ler mais

    Tempo de leitura: 7 minutos
    10/11/2025
    Código Python com valores Boolean True e False em tela de computador
    Fundamentos
    Foto do Leandro Hirt

    O que é Boolean em Python? Entenda os valores True e False

    Os valores Boolean são um dos conceitos mais importantes da programação em Python. Eles representam apenas duas possibilidades: verdadeiro ou

    Ler mais

    Tempo de leitura: 5 minutos
    09/11/2025
    Logo do Python com expressão pensativa e o texto range(), representando a função range no Python
    Fundamentos
    Foto do Leandro Hirt

    Como Funciona o range() no Python

    A função range() é uma das mais usadas no Python, principalmente quando o assunto é laços de repetição. Ela serve

    Ler mais

    Tempo de leitura: 6 minutos
    06/11/2025
    Pessoa utilizando um notebook com código aberto na tela, representando o desenvolvimento de software ou programação em Python
    IDEsFundamentos
    Foto do Leandro Hirt

    O Que é o IDLE do Python e Como Usá-lo no Seu Computador

    Aprender Python é uma ótima escolha para quem deseja entrar no mundo da programação. Mas antes de começar a escrever

    Ler mais

    Tempo de leitura: 7 minutos
    04/11/2025
    Tela de computador exibindo código
    Fundamentos
    Foto do Leandro Hirt

    O que é e Como Usar o Ambiente Virtual (venv) no Python

    Aprender a usar o ambiente virtual (venv) é uma das etapas mais importantes para quem desenvolve em Python. Essa ferramenta

    Ler mais

    Tempo de leitura: 8 minutos
    04/11/2025
    logotipo do Python em azul e amarelo ao lado das palavras 'try except' em fonte amarela sobre um fundo azul-texturizado
    Fundamentos
    Foto do Leandro Hirt

    Como Usar o Try Except (Tratamento de Erros) em Python

    Ao programar em Python, é comum encontrar erros durante a execução do código. Às vezes, eles acontecem por motivos simples,

    Ler mais

    Tempo de leitura: 6 minutos
    03/11/2025