Set em Python: o que é, quando e como usar no seu projeto
O set em Python consiste em uma estrutura de dados muito útil, porém menos compreendidas.
Isso porque, diferentemente de listas e dicionários, os sets oferecem operações matemáticas de conjunto e garantem elementos únicos.
Se você trabalha ou pretende se especializar no desenvolvimento em Python, essa pode ser a sua grande aliada. Por isso, preparamos este artigo para te ensinar:
- O que são sets em Python e como criá-los;
- Propriedades exclusivas que os diferenciam de outras estruturas;
- Vantagens de desempenho em operações específicas.
Boa leitura!
Um set em Python é uma coleção mutável, não ordenada e sem elementos repetidos, criada com chaves {} ou com a função set(). Ele remove duplicatas automaticamente, verifica com rapidez se um valor existe e suporta operações matemáticas de conjunto, como união, interseção e diferença — ideal para filtrar valores únicos em qualquer projeto.
O que você vai ver hoje?
O que é um set em Python?
Um set é uma coleção não ordenada e mutável de elementos únicos. Representado por chaves {} ou pela função set(), ele é particularmente eficiente para:
- Remover duplicatas de listas;
- Testar pertinência (verificar se um elemento existe);
- Realizar operações matemáticas entre conjuntos.
Aqui está um exemplo básico:
linguagens = {"Python", "Java", "C++", "Python"} # Duplicata removida automaticamente
print(linguagens) # Saída: {'Python', 'Java', 'C++'} - ordem pode variarQuais são as propriedades dos sets em Python?
Os sets em Python possuem quatro propriedades fundamentais:
- Elementos únicos: Não permitem duplicatas;
- Não ordenados: A ordem de inserção não é preservada;
- Mutáveis: Podem ser alterados após criação (com exceção do frozenset);
- Otimizados para operações de pertinência: Uso de hash tables para buscas O(1).
Vamos a mais um exemplo, agora para demonstrar as propriedades:
# Propriedade 1: Elementos únicos
nums = {1, 2, 2, 3, 3, 3}
print(nums) # Saída: {1, 2, 3}
# Propriedade 4: Busca eficiente
print(2 in nums) # Retorna True instantaneamente, mesmo em sets grandesQuais são as vantagens de usar set no projeto em Python?
Os sets em Python oferecem benefícios únicos que os tornam ideais para situações específicas. As principais vantagens incluem:
- Elementos únicos automaticamente: sets não permitem valores duplicados, o que é útil para filtrar dados repetidos sem esforço.
- Operações rápidas de busca: verificar se um elemento existe em um set (x in conjunto) é extremamente eficiente, mesmo com grandes volumes de dados;
- Operações matemáticas prontas: suporta união, interseção e diferença entre conjuntos de forma nativa, sem precisar de loops manuais;
- Otimização de memória: como armazenam apenas valores únicos, sets podem ser mais econômicos que listas em certos casos.
Quando usar set em Python no seu projeto?
Sets são especialmente úteis quando você precisa:
- Remover duplicatas de uma lista ou coleção de dados;
- Verificar rapidamente se um valor já existe em uma coleção (ex.: lista de e-mails cadastrados);
- Comparar grupos de dados (ex.: produtos vendidos em diferentes períodos);
- Realizar operações matemáticas entre conjuntos (como unir ou encontrar elementos em comum).
Por exemplo: se você está construindo um sistema de recomendação e quer evitar sugestões repetidas, um set pode ajudar a gerenciar os itens já mostrados ao usuário.
Como criar um set em Python?
Existem duas formas principais de criar um set:
Usando chaves {}
Funciona para sets não vazios com elementos já definidos. Exemplo:
cores = {"vermelho", "verde", "azul"} Usando a função set()
Necessária para criar um set vazio ou converter outras estruturas (listas, tuplas) em sets. Um exemplo:
numeros = set([1, 2, 3, 3]) # Remove duplicatas automaticamente Mas vale lembrar: {} sozinho cria um dicionário vazio, não um set. Para um set vazio, use set().
Como modificar sets em Python?
Os sets em Python são mutáveis, ou seja, você pode adicionar, remover e alterar seus elementos após a criação.
No entanto, como os sets não são ordenados e não possuem índices, as operações de modificação funcionam de forma diferente em comparação com listas ou dicionários.
Aqui estão as principais maneiras de modificar um set.
Adicionar
Para adicionar elementos a um set, você pode usar os dois métodos abaixo.
1. add()
Sua principal função é inserir um único elemento no set. Se o elemento já existir, o set não é alterado (não há duplicatas) e ele só aceita um item por vez (não pode adicionar uma lista diretamente).
Um exemplo para que fique mais claro:
frutas = {"maçã", "banana"}
frutas.add("laranja") # Adiciona "laranja"
frutas.add("maçã") # Não faz nada, pois "maçã" já existe
print(frutas) # Saída: {"maçã", "banana", "laranja"}2. update()
Adiciona múltiplos elementos de uma vez e aceita iteráveis (listas, tuplas, outros sets etc.), além de ser capaz de remover automaticamente duplicatas.
Confira no exemplo abaixo:
frutas = {"maçã", "banana"}
frutas.update(["laranja", "uva", "banana"]) # Adiciona "laranja" e "uva" (ignora "banana")
print(frutas) # Saída: {"maçã", "banana", "laranja", "uva"}
Atenção: se você tentar usar add() com uma lista, ocorrerá um erro. Use update() para múltiplos itens.
Remover
Para remover elementos, existem quatro métodos principais, cada um com um comportamento diferente:
1. remove()
Remove um elemento específico e, se o elemento não existir, gera um erro (KeyError). É um método ideal para usar quando você tem certeza de que o elemento está no set.
Por exemplo:
frutas = {"maçã", "banana", "laranja"}
frutas.remove("banana") # Remove "banana"
print(frutas) # Saída: {"maçã", "laranja"}
# frutas.remove("uva") # Causaria KeyError, pois "uva" não existe2. discard()
Remove um elemento se ele existir e não gera erro se o elemento não estiver no set. Além disso, é mais seguro de usar do que remove() quando você não tem certeza da existência do item.
Aqui vai um exemplo:
frutas = {"maçã", "banana", "laranja"}
frutas.discard("banana") # Remove "banana"
frutas.discard("uva") # Não faz nada (sem erro)
print(frutas) # Saída: {"maçã", "laranja"}3. pop()
Remove e retorna um elemento aleatório do set. Só que, como sets não são ordenados, você não controla qual item será removido. Além disso, se o set estiver vazio, gera KeyError.
Confira no exemplo abaixo:
frutas = {"maçã", "banana", "laranja"}
item_removido = frutas.pop()
print(f"Item removido: {item_removido}") # Pode ser qualquer um ("maçã", "banana" ou "laranja")
print(frutas) # Set sem o item removido4. clear()
Remove todos os elementos do set, deixando-o vazio. Muito útil para reutilizar a variável sem criar um novo set. Cheque no exemplo a seguir:
frutas = {"maçã", "banana", "laranja"}
frutas.clear()
print(frutas) # Saída: set()Aproveite, também, e confira a tabela abaixo com o resumo das operações de modificação que falamos anteriormente:
| Operação | Método | Comportamento |
|---|---|---|
| Adicionar 1 item | add() | Ignora se já existir |
| Adicionar vários itens | update() | Aceita listas, tuplas, etc. |
| Remover item específico | remove() | Erro se não existir |
| Remover item (seguro) | discard() | Não gera erro |
| Remover item aleatório | pop() | Retorna o elemento removido |
| Limpar todo o set | clear() | Deixa o set vazio |
Como iterar os sets em Python?
Iterar sobre um set em Python significa percorrer cada um de seus elementos para leitura ou processamento.
Apesar de os sets não serem ordenados (ou seja, não garantirem uma sequência fixa), a iteração é simples e eficiente.
Entenda melhor a partir das principais características da iteração em sets:
- Ordem imprevisível: como os sets são baseados em hash tables, a ordem dos elementos durante a iteração não segue a inserção e pode variar entre execuções;
- Eficiência: a iteração é tão rápida quanto em listas, mas sem a sobrecarga de índices;
- Uso em loops: pode-se usar loops for diretamente, assim como em outras estruturas iteráveis.
E quando iterar em sets? Basicamente, quando você precisa processar todos os elementos de uma coleção sem duplicatas ou para aplicar operações ou filtros a cada item individualmente.
Ou, até mesmo, ao trabalhar com dados onde a ordem não é relevante, como conjuntos matemáticos ou IDs únicos.
Como fazer operações com sets em Python?

Os sets em Python suportam operações matemáticas de conjuntos de forma nativa, o que os torna ideais para comparações e combinações entre coleções de dados.
Essas operações são otimizadas e evitam a necessidade de loops manuais.
União
A união combina os elementos de dois ou mais sets, resultando em um novo conjunto com todos os itens presentes em qualquer um dos sets originais, sem repetições.
- Símbolo: |
- Método equivalente: union()
Tipicamente, você pode usar para combinar listas de usuários de diferentes fontes ou também para agregar resultados de múltiplas consultas sem repetições.
Interseção
A interseção retorna apenas os elementos que estão presentes em todos os sets envolvidos na operação.
- Símbolo: &
- Método equivalente: intersection()
Aplicações típicas incluem a identificação de itens comuns entre diferentes grupos (ex.: produtos comprados por dois clientes) ou também para filtrar dados que atendem a múltiplas condições simultaneamente.
Diferença
A diferença entre sets em Python retorna os elementos que estão no primeiro set mas não estão nos demais.
- Símbolo: –
- Método equivalente: difference()
Que tal fazer uso disso para encontrar itens exclusivos de uma coleção em relação a outra ou para detectar mudanças entre dois estados de dados (ex.: novos registros em um banco de dados)?
Como aprender mais sobre Python?
Entender estruturas como os sets em Python é um excelente começo, mas a jornada para dominar completamente a linguagem vai muito além.
Python é uma linguagem versátil e poderosa, utilizada em áreas como análise de dados, automação, inteligência artificial e desenvolvimento web.
Para evoluir de verdade na programação, é essencial explorar outros conceitos fundamentais e praticar regularmente.
Uma das melhores maneiras de ampliar seu conhecimento é se aprofundar nos diferentes tipos de dados que Python oferece.
Além dos sets, estruturas como dicionários, listas e tuplas são fundamentais no dia a dia de um programador. Cada uma delas tem características específicas que as tornam mais adequadas para determinadas situações.
Os dicionários, por exemplo, são ideais para armazenar informações em pares de chave-valor, enquanto as listas são mais flexíveis para manipulação de sequências ordenadas.
Compreender quando e como usar cada uma dessas estruturas pode significar a diferença entre um código eficiente e um que deixa a desejar em desempenho.
Outro passo importante no aprendizado é a prática constante de algoritmos. Resolver exercícios e problemas que envolvam manipulação de coleções, como buscas, filtros e ordenação, ajuda a solidificar o entendimento e a desenvolver uma mentalidade analítica.
Plataformas de desafios de programação são ótimas para isso, pois oferecem problemas variados que testam sua capacidade de pensar logicamente e escrever código otimizado.
Além disso, estudar bibliotecas essenciais pode elevar seu nível de programação a outro patamar.
Módulos como collections e itertools trazem estruturas de dados e funções que simplificam operações complexas, enquanto o numpy é indispensável para quem trabalha com computação numérica e análise de dados.
Se você quer acelerar ainda mais seu aprendizado e ter acesso a um guia estruturado que vai do básico ao avançado, o Curso Python Impressionador é a escolha ideal. Com ele, você aprende passo a passo, com exemplos práticos e suporte, tudo o que precisa para dominar Python e se destacar no mercado.

E se você está procurando um caminho estruturado e eficiente para aprender tudo isso e muito mais, o curso da Hashtag Treinamentos é a escolha ideal!
Com uma abordagem prática e focada em projetos reais, nosso curso de Python cobre desde os conceitos mais básicos até tópicos avançados, tudo com o suporte de especialistas para tirar suas dúvidas.
Essa é a oportunidade perfeita para transformar seu conhecimento em habilidades concretas e se destacar no mercado de trabalho.
Dominar Python não acontece da noite para o dia, mas com dedicação e os recursos certos, você pode acelerar significativamente esse processo. Comece hoje mesmo a expandir seus horizontes e descubra todo o potencial que a programação tem a oferecer.
O futuro da tecnologia está cheio de oportunidades, e com Python na sua caixa de ferramentas, você estará preparado para aproveitar cada uma delas.
Conheça o curso de Python da Hashtag Treinamentos!
Perguntas frequentes
1. Qual a diferença entre set e lista em Python?
A lista mantém a ordem de inserção, aceita valores repetidos e permite acesso por índice. O set não garante ordem, elimina duplicatas automaticamente e não tem índices, mas verifica a existência de um elemento com muito mais rapidez, pois usa tabelas hash. Use lista para sequências e set para coleções de valores únicos.
2. Como criar um set vazio em Python?
Use a função set() sem argumentos: conjunto = set(). Escrever apenas chaves vazias {} não cria um conjunto, porque o Python interpreta {} como um dicionário vazio. A função set() também serve para converter uma lista ou tupla em conjunto, eliminando automaticamente os valores duplicados durante a conversão.
3. O que é frozenset em Python?
É a versão imutável do set: depois de criado com frozenset(), o conjunto não aceita adicionar nem remover elementos. Por ser imutável, ele pode ser usado como chave de dicionário ou como elemento dentro de outro set, algo que o set comum não permite. As operações de união, interseção e diferença continuam funcionando normalmente.
4. Como remover duplicatas de uma lista em Python?
Converta a lista em set e volte para lista: lista_unica = list(set(minha_lista)). O set descarta os valores repetidos automaticamente em uma única operação, sem loops manuais. Atenção: a ordem original dos elementos pode mudar, já que sets não são ordenados. Se a ordem importar, use dict.fromkeys(minha_lista), que preserva a sequência.
Conclusão
Os sets em Python são uma ferramenta indispensável para quem busca eficiência no tratamento de coleções de dados únicos.
Sua capacidade de eliminar duplicatas automaticamente, combinada com operações matemáticas nativas e desempenho superior em buscas, os tornam essenciais para situações que vão desde simples filtragens até complexas análises de dados.
Dominar esse conceito é um passo significativo no caminho para se tornar um programador Python mais competente e versátil.
E à medida que você avança na linguagem, perceberá como cada estrutura de dados — sejam sets, listas ou dicionários — possui características específicas que as tornam ideais para diferentes cenários.
O verdadeiro domínio da programação vem justamente dessa compreensão profunda e da capacidade de escolher a ferramenta certa para cada desafio.
Para continuar seu aprendizado de forma estruturada e eficiente, considere explorar cursos especializados que ofereçam tanto a base teórica quanto a prática necessária para transformar conhecimento em habilidade concreta.
Hashtag Treinamentos
Para acessar outras publicações de Python, clique aqui!
Posts mais recentes de Python
- Curso Básico de Python: Saia do Zero em 10 Aulas GrátisAprenda com o curso básico de Python gratuito da Hashtag: 10 aulas práticas, exercícios e projetos reais para sair do zero em programação.
- Agentes RAG com Python: como criar um assistente de IAAprenda a criar Agentes RAG com Python do zero: LangChain, FAISS e OpenAI para montar um assistente de IA que responde com base nos seus documentos.
- 25 Tipos de Gráficos em Python: Guia Completo com CódigoAprenda a criar os principais tipos de gráficos em Python com Plotly: barras, pizza, mapas e mais, com código pronto para copiar e usar.
Posts mais recentes da Hashtag Treinamentos
- Planilha de Controle de Notas Fiscais no Excel [Grátis]Baixe a planilha de controle de notas fiscais no Excel grátis: calcule ISS e retenções, veja o que está em aberto e gere a cobrança de cada nota de serviço.
- Qual IA usar na empresa: ChatGPT, Claude ou Perplexity?Qual IA usar na empresa: veja as diferenças entre ChatGPT, Claude e Perplexity e quando cada um rende mais em cada área da sua equipe.
- Apostilas Gratuitas em PDF: Excel, Power BI, Python e IABaixe apostilas gratuitas em PDF de Excel, Power BI, Python, Claude e agentes de IA, com exercícios e gabarito. Escolha a sua e comece hoje.








