🎯 Conjuntos em Python
Em poucas palavras
Definição técnica ou simplificada do conceito.
📝 Notas e Desenvolvimento
🔗 Conexões e Contexto
- Atlas: MdC - Programação
- Notas Relacionadas:
📚 Referências e Fontes
Links Externos
Citações Diretas
📂 Outros Conteúdos Preservados
Conjuntos (Sets) em Python
Um Conjunto (Set) em Python é uma coleção não ordenada de itens únicos. Isso significa que um conjunto não pode conter elementos duplicados e a ordem em que os elementos são armazenados não é garantida.
Definição de Conjuntos
Conjuntos são definidos usando chaves {} ou a função set().
Exemplo de definição:
### Definindo um conjunto usando chaves
Frutas = {"Maçã", "Banana", "Cereja"}
print(Frutas)
### Definindo um conjunto vazio (é importante usar set() para conjuntos vazios, pois {} cria um dicionário vazio)
ConjuntoVazio = set()
print(ConjuntoVazio)Características Principais
- Não Ordenado: Os elementos em um conjunto não possuem uma ordem específica.
- Único: Cada elemento em um conjunto deve ser único. Tentativas de adicionar elementos duplicados são ignoradas.
- Mutável: É possível adicionar ou remover elementos de um conjunto após sua criação.
- Elementos Imutáveis: Os elementos dentro de um conjunto devem ser de tipos imutáveis (como strings, números, tuplas).
Operações Comuns com Conjuntos
Adicionar Elementos
Você pode adicionar um único elemento a um conjunto usando o método add().
Frutas = {"Maçã", "Banana", "Cereja"}
Frutas.add("Laranja")
print(Frutas)
### Saída possível: {'Cereja', 'Laranja', 'Maçã', 'Banana'} (a ordem pode variar)
Para adicionar múltiplos elementos de um iterável (como outra lista ou conjunto), use o método update().
Frutas = {"Maçã", "Banana"}
Novas_Frutas = ["Laranja", "Uva"]
Frutas.update(Novas_Frutas)
print(Frutas)
### Saída possível: {'Uva', 'Banana', 'Laranja', 'Maçã'}
Remover Elementos
Você pode remover um elemento específico usando remove() ou discard(). A diferença é que remove() gera um erro se o elemento não existir, enquanto discard() não faz nada nesse caso.
Frutas = {"Maçã", "Banana", "Cereja"}
### Usando remove()
Frutas.remove("Banana")
print(Frutas)
### Saída possível: {'Cereja', 'Maçã'}
### Usando discard()
Frutas.discard("Uva") # Não gera erro, pois "Uva" não está no conjunto
print(Frutas)
### Saída possível: {'Cereja', 'Maçã'}
### Tentando remover um elemento inexistente com remove() geraria um KeyError
### Frutas.remove("Pera") # Isso causaria um erro
Para remover e retornar um elemento arbitrário do conjunto, use pop().
Frutas = {"Maçã", "Banana", "Cereja"}
elemento_removido = Frutas.pop()
print(f"Elemento removido: {elemento_removido}")
print(f"Conjunto restante: {Frutas}")
### Saída possível:
### Elemento removido: Cereja
### Conjunto restante: {'Maçã', 'Banana'}
Para remover todos os elementos de um conjunto, use clear().
Frutas = {"Maçã", "Banana", "Cereja"}
Frutas.clear()
print(Frutas)
### Saída: set()
Operações Matemáticas de Conjuntos
Conjuntos suportam operações matemáticas como união, interseção, diferença e diferença simétrica.
- União (
|ouunion()): Retorna um novo conjunto com todos os elementos de ambos os conjuntos. - Interseção (
&ouintersection()): Retorna um novo conjunto com os elementos comuns a ambos os conjuntos. - Diferença (
-oudifference()): Retorna um novo conjunto com os elementos do primeiro conjunto que não estão no segundo. - Diferença Simétrica (
^ousymmetric_difference()): Retorna um novo conjunto com os elementos que estão em um dos conjuntos, mas não em ambos.
A = {1, 2, 3, 4}
B = {3, 4, 5, 6}
### União
print(A | B) # Saída: {1, 2, 3, 4, 5, 6}
print(A.union(B)) # Saída: {1, 2, 3, 4, 5, 6}
### Interseção
print(A & B) # Saída: {3, 4}
print(A.intersection(B)) # Saída: {3, 4}
### Diferença
print(A - B) # Saída: {1, 2} (Elementos em A que não estão em B)
print(A.difference(B)) # Saída: {1, 2}
print(B - A) # Saída: {5, 6} (Elementos em B que não estão em A)
print(B.difference(A)) # Saída: {5, 6}
### Diferença Simétrica
print(A ^ B) # Saída: {1, 2, 5, 6}
print(A.symmetric_difference(B)) # Saída: {1, 2, 5, 6}Quando Usar Conjuntos?
Conjuntos são ideais quando você precisa:
- Garantir que uma coleção de itens não tenha duplicatas.
- Realizar verificações de pertinência (se um item está ou não em uma coleção) de forma muito eficiente.
- Executar operações matemáticas de conjuntos (união, interseção, etc.).
:: Referência:: Documentação Python sobre tipos nativos