Conjuntos em Python

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.

Tags: Python set Collections data-structures

Publicado em 8-10 08:49