// aula 04 · Python · Estruturas de Dados · Mundo 3

Conjuntos (sets)
em Python


O que é um conjunto?

🎯 Coleção sem ordem e sem duplicatas

Conjuntos (set) funcionam como os conjuntos da matemática — guardam elementos únicos e permitem operações como união, interseção e diferença. São perfeitos para remover duplicatas e checar pertencimento.

✅ Características

  • Não ordenado — sem posição fixa
  • Sem duplicatas — cada item é único
  • Mutável — pode adicionar/remover
  • Não acessa por índice (set[0] dá erro)

📌 Sintaxe

  • Criado com chaves: { } sem chave: valor
  • Ou com a função: set(lista)
  • Set vazio: set() — nunca {} (seria dict)
  • Duplicatas são removidas automaticamente
# Criando conjuntos
vogais  = {"a", "e", "i", "o", "u"}
numeros = {1, 2, 3, 2, 1, 4}   # duplicatas ignoradas
print(numeros)  # → {1, 2, 3, 4}  (sem os repetidos)

# Converter lista com duplicatas em set (remover duplicatas)
lista = [1, 5, 3, 1, 2, 5, 3, 7]
unicos = set(lista)
print(unicos)   # → {1, 2, 3, 5, 7}

# Verificar pertencimento (muito rápido!)
print("a" in vogais)   # → True
print("z" in vogais)   # → False

Operações matemáticas — o superpoder do set

União |

{1, 2, 3}
|
{3, 4, 5}
=
{1, 2, 3, 4, 5}

Todos os elementos dos dois conjuntos (sem repetir).

Interseção &

{1, 2, 3}
&
{3, 4, 5}
=
{3}

Apenas os elementos que estão nos dois conjuntos ao mesmo tempo.

Diferença -

{1, 2, 3}
-
{3, 4, 5}
=
{1, 2}

Elementos do primeiro que NÃO estão no segundo.

Diferença simétrica ^

{1, 2, 3}
^
{3, 4, 5}
=
{1, 2, 4, 5}

Elementos que estão em um OU no outro, mas não nos dois.

A = {1, 2, 3, 4}
B = {3, 4, 5, 6}

print(A | B)   # União:              {1, 2, 3, 4, 5, 6}
print(A & B)   # Interseção:         {3, 4}
print(A - B)   # Diferença A-B:      {1, 2}
print(B - A)   # Diferença B-A:      {5, 6}
print(A ^ B)   # Diferença simétrica: {1, 2, 5, 6}

Principais métodos

add(valor)

Adiciona um elemento ao conjunto.

s.add(10)
remove(valor)

Remove o elemento. Gera erro se não existir.

s.remove(3)
discard(valor)

Remove o elemento sem gerar erro se não existir.

s.discard(99) # seguro
union(outro)

Retorna a união. Equivale ao operador |.

A.union(B)
intersection()

Retorna a interseção. Equivale a &.

A.intersection(B)
issubset(outro)

Verifica se todos os elementos estão no outro conjunto.

{1,2}.issubset({1,2,3}) # True

Resumão — as 4 estruturas comparadas

Propriedade 📋 Lista 🔒 Tupla 🔑 Dict
Sintaxe
[ ]
( )
{ k:v }
Ordenada
✅ Sim
✅ Sim
✅ Sim*
Mutável
✅ Sim
❌ Não
✅ Sim
Duplicatas
✅ Sim
✅ Sim
❌ Não (chave)
Acesso por
Índice
Índice
Chave
Use quando
Dados variáveis
Dados fixos
Chave → valor

* Dicionários mantêm ordem de inserção a partir do Python 3.7

🎯 Set — a estrutura especial

Sintaxe: { }  ·  Não ordenado  ·  Sem duplicatas  ·  Mutável  ·  Acesso por pertencimento (in). Use quando precisar de elementos únicos ou operações matemáticas de conjuntos.