O Que Você Vai Aprender
Nesta aula de 2 horas, você será introduzido aos conjuntos (Sets), uma estrutura de dados fundamental em Python que se destaca por armazenar apenas itens únicos e não ter uma ordem definida. Aprenderá a criar e manipular conjuntos, além de realizar poderosas operações matemáticas como união, interseção e diferença, essenciais para lidar com coleções de dados de forma eficiente.
✅ Compreender Conjuntos
Entender o conceito de conjuntos: coleções de itens únicos e não ordenados.
🛠️ Criar e Manipular Conjuntos
Aprender a sintaxe para criar conjuntos e os métodos para adicionar e remover itens.
➕ Operações Matemáticas de Conjuntos
Realizar operações como união, interseção e diferença para combinar ou comparar conjuntos.
Conceito e Criação de Conjuntos (Sets)
Conjuntos são coleções de itens que possuem duas características principais: eles contêm apenas itens únicos (duplicatas são automaticamente removidas) e são não ordenados (a ordem dos itens não é garantida). Eles são extremamente úteis para remover duplicatas e para realizar testes de pertinência de forma muito eficiente.
Criação de Conjuntos
Use chaves `{}` para criar conjuntos diretamente. Itens são separados por vírgulas. Duplicatas são ignoradas.
meu_set = {1, 2, 3, 3, 4}
# meu_set será {1, 2, 3, 4} (o 3 repetido e o 4 repetido são ignorados)
Você também pode criar um conjunto a partir de uma lista (ou outro iterável):
numeros_unicos = set([1, 2, 2, 3, 4, 4, 4])
# numeros_unicos será {1, 2, 3, 4}
Atenção: Criando um Conjunto Vazio
Para criar um conjunto vazio, NÃO use `{}`, pois isso cria um dicionário vazio. Use `set()`:
vazio = set() # Isso cria um conjunto vazio
# not_a_set = {} # Isso cria um dicionário vazio!
Criador de Conjuntos
Digite itens separados por vírgulas. Veja como as duplicatas são removidas e a ordem não é mantida.
Manipulação de Conjuntos: Adicionar e Remover Itens
Embora conjuntos não sejam ordenados, você pode adicionar e remover itens dinamicamente. Os métodos `add()`, `remove()` e `discard()` são essenciais para isso.
Adicionar um Item (`.add(item)`)
Adiciona um único item ao conjunto. Se o item já existir, o conjunto permanece inalterado (pois itens são únicos).
meu_set = {1, 2}
meu_set.add(3)
# meu_set é {1, 2, 3}
meu_set.add(2) # Não faz nada
# meu_set continua sendo {1, 2, 3}
Remover um Item (`.remove(item)` vs `.discard(item)`)
Existem duas formas principais de remover itens:
- `.remove(item)`: Remove o item especificado. Se o item não existir, gera um `KeyError`.
- `.discard(item)`: Remove o item especificado. Se o item não existir, não faz nada e não gera erro. É mais seguro!
cores = {'vermelho', 'azul', 'verde'}
cores.remove('azul')
# cores é {'vermelho', 'verde'}
# cores.remove('amarelo') # Isso geraria um KeyError!
cores.discard('verde')
# cores é {'vermelho'}
cores.discard('roxo') # Não faz nada, não gera erro
Manipulador de Conjuntos
Comece com um conjunto inicial e use os botões para adicionar ou remover itens. Conjunto atual: {'maçã', 'banana', 'laranja'}
Operações de Conjuntos: Lógica Matemática Aplicada
Conjuntos suportam operações matemáticas poderosas que permitem combinar, comparar e filtrar dados entre diferentes coleções. São ideais para encontrar elementos comuns, exclusivos ou totais entre grupos de itens.
União (`|` ou `.union()`)
Combina todos os itens únicos de ambos os conjuntos. O operador `|` é o mais comum.
set1 = {1, 2}
set2 = {2, 3}
uniao = set1 | set2 # Saída: {1, 2, 3}
Interseção (`&` ou `.intersection()`)
Retorna apenas os itens que existem em ambos os conjuntos.
set1 = {1, 2, 3}
set2 = {2, 3, 4}
intersecao = set1 & set2 # Saída: {2, 3}
Diferença (`-` ou `.difference()`)
Retorna os itens que estão no primeiro conjunto, mas não no segundo.
set1 = {1, 2, 3}
set2 = {2, 4}
diferenca = set1 - set2 # Saída: {1, 3}
Simulador: Operações de Conjuntos
Defina dois conjuntos e selecione uma operação para ver o resultado.
Desafios para Continuar
Agora que você explorou o poder dos conjuntos, é hora de praticar! Resolva estes problemas no seu ambiente de desenvolvimento Python para solidificar seu aprendizado.
-
✓
Removendo Duplicatas de uma Lista
Dada a lista `numeros = [1, 5, 2, 8, 2, 5, 9, 10, 1]`, use um conjunto para criar e imprimir uma nova lista sem elementos duplicados. (Dica: converta a lista para conjunto e depois o conjunto de volta para lista).
-
✓
Análise de Convidados de Festas
Crie duas listas de convidados para duas festas diferentes, com alguns nomes que se repetem (ex: `festa_a = ["João", "Maria", "Pedro"]`, `festa_b = ["Pedro", "Ana", "João"]`). Use conjuntos para descobrir e imprimir:
- **a) Todas as pessoas convidadas no total (sem repetição):** use a operação de união.
- **b) Quem foi convidado para ambas as festas:** use a operação de interseção.