O que é um conjunto
Em Python, conjuntos são representados pela palavra-chave set.
Um conjunto armazena múltiplos elementos sem ordem específica, não permite duplicatas e pode conter dados de diferentes tipos.
Criação de conjuntos
Conjuntos vazios ou preenchidos podem ser criados usando set() ou chaves ({}):
# Criando um conjunto vazio
conjunto_vazio = set()
print(conjunto_vazio, type(conjunto_vazio))
# Criando um conjunto com elementos (valores repetidos serão removidos automaticamente)
conjunto_preenchido = {10, 20, 20, 30, 40, 40}
print(conjunto_preenchido, type(conjunto_preenchido))
Operações básicas: adicionar, remover, atualizar e percorrer
c = set()
# Adicionando itens ao conjunto
c.add("HTML")
c.add("CSS")
c.add("JavaScript")
print(c)
# Removendo item condicionalmente
item_remover = "CSS"
if item_remover in c:
c.remove(item_remover)
print(c)
# Substituindo um elemento (não há método direto para edição)
c.discard("HTML") # Descartar elemento existente
c.add("React") # Adicionar novo elemento
print(c)
# Iteração sobre os elementos do conjunto
for linguagem in c:
print("Linguagem encontrada:", linguagem)
Métodos úteis dos conjuntos
| Método | Descrrição |
|---|---|
add() [Importante] |
Inclui um elemento no conjunto |
clear() |
Esvazia o conteúdo do conjunto |
copy() |
Gera uma cópia do conjunto |
difference() [Importante] |
Retorna a diferença entre dois conjuntos |
difference_update() |
Atualiza o conjunto com a diferença |
discard() [Importante] |
Remove um elemento, se presente |
intersection() [Importante] |
Obtém a interseção entre conjuntos |
intersection_update() |
Atualiza com base na interseção |
isxxxxx() |
Várias funções para comparações lógicas |
pop() |
Remove aleatoriamente um elemento |
remove() [Importante] |
Remove um elemento específico (lança erro caso ausante) |
symmetric_difference() |
Diferença simétrica completa |
symmetric_difference_update() |
Aplica a diferença simétrica diretamente no conjunto |
union() [Importante] |
Realiza a união entre conjuntos |
update() |
Atualiza o conjunto com a união |
Exemplos práticos com operações de conjuntos
# Exemplo 1: Encontrar perfis similares entre usuários
usuario_a = {1, 2, 3, 8, 9}
usuario_b = {3, 4, 5, 8, 10}
# Interseção - interesses comuns
interesses_compartilhados = usuario_a & usuario_b # Ou usuario_a.intersection(usuario_b)
print("Interesses compartilhados:", interesses_compartilhados)
# União - todos os interesses combinados
todos_interesses = usuario_a | usuario_b # Ou usuario_a.union(usuario_b)
print("Todos os interesses:", todos_interesses)
# Diferença - interesses exclusivos do usuário A
exclusivo_a = usuario_a - usuario_b # Ou usuario_a.difference(usuario_b)
print("Interesses exclusivos do usuário A:", exclusivo_a)
Comparativo entre estruturas de dados
| Tipo | Declaração | Múltiplos valores | Vários tipos | Ordenado | Duplicados permitidos | Elementos |
|---|---|---|---|---|---|---|
| Lista | list |
Sim | Sim | Sim | Sim | Valor único |
| Tupla | tuple |
Sim | Sim | Sim | Sim | Valor único |
| Dicionário | dict |
Sim | Sim | Sim* | Chaves não; Valores sim | Par chave-valor |
| Conjunto | set |
Sim | Sim | Não | Não | Valor único |
- Listas: ideais para armazenar sequências ordenadas onde repetições são aceitas.
- Tuplas: usadas quando os dados devem permanecer imutáveis durante a execução.
- Dicionários: adequados para associar chaves a valores, facilitando buscas rápidas.
- Conjuntos: úteis para eliminar duplicidades e realizar análises matemáticas como união, interseção e diferença.