Tipos de Dados Básicos em Python: Conjuntos Set

A diferença entre conjuntos e dicionários é que conjuntos possuem apenas valores, enquanto dicionários têm chaves. Dicionários são pares chave-valor.

Portanto, para criar um conjunto vazio, não se pode usar chaves {} pois isso criará um dicionário vazio. Para criar um conjunto vazio, utilize set().

Criando Conjuntos

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Criando um conjunto
conjunto_vazio = set()
conjunto_numeros = {11, 22, 33, 44, 55, 55}
print(conjunto_numeros)
# Resultado: {33, 11, 44, 22, 55}

Convertendo para Conjuntos

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Convertendo para conjuntos
lista_numeros = [11, 22, 33, 44, 55]
tupla_numeros = (11, 22, 33, 44, 55)
string_caracteres = "123456789"

# Convertendo lista para conjunto
conjunto_lista = set(lista_numeros)
print(conjunto_lista)
# Convertendo tupla para conjunto
conjunto_tupla = set(tupla_numeros)
print(conjunto_tupla)
# Convertendo string para conjunto
conjunto_string = set(string_caracteres)
print(conjunto_string)
# Resultados:
#{33, 11, 44, 22, 55}
#{33, 11, 44, 22, 55}
#{'7', '5', '1', '9', '4', '2', '8', '6', '3'}

Métodos de Conjuntos

add(self, elemento)

Adiciona um elemento ao conjunto.

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Criando um conjunto
numeros = {11, 22, 33, 44}
# Adicionando elemento ao conjunto
numeros.add(55)
print(numeros)
# Resultado: {33, 11, 44, 22, 55}

clear(self)

Remove todos os elementos do conjunto.

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Criando um conjunto
numeros = {11, 22, 33, 44}
# Removendo todos os elementos
numeros.clear()
print(numeros)
# Resultado: set() (conjunto vazio)

difference(self, outro_conjunto)

Retorna elementos que estão no conjunto atual mas não no outro conjunto.

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Criando dois conjuntos
conjunto_a = {11, 22, 33, 44}
conjunto_b = {11, 55, 88, 44}
# Encontrando elementos em A que não estão em B
diferenca = conjunto_a.difference(conjunto_b)
print(diferenca)
# Resultado: {33, 22}

difference_update(self, outro_conjunto)

Remove do conjunto atual os elementos que também estão no outro conjunto.

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Criando dois conjuntos
conjunto_a = {11, 22, 33, 44, 999}
conjunto_b = {11, 55, 88, 44}
# Removendo de A elementos que estão em B
conjunto_a.difference_update(conjunto_b)
print(conjunto_a)
# Resultado: {33, 22, 999}

discard(self, elemento)

Remove um elemento específico do conjunto. Se o elemento não existir, não gera erro.

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Criando um conjunto
numeros = {11, 22, 33, 44, 999}
# Removendo elemento específico
numeros.discard(999)
print(numeros)
# Resultado: {33, 11, 44, 22}

intersection(self, outro_conjunto)

Retorna a interseção entre dois conjuntos (elementos presentes em ambos).

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Criando dois conjuntos
conjunto_a = {66, 22, 33, 44, 99}
conjunto_b = {44, 55, 66, 77, 33}
# Encontrando elementos comuns
interseccao = conjunto_a.intersection(conjunto_b)
print(interseccao)
# Resultado: {33, 66, 44}

intersection_update(self, outro_conjunto)

Atualiza o conjunto atual com a interseção entre ele e outro conjunto.

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Criando dois conjuntos
conjunto_a = {66, 22, 33, 44, 99}
conjunto_b = {44, 55, 66, 77, 33}
# Atualizando A com elementos comuns
conjunto_a.intersection_update(conjunto_b)
print(conjunto_a)
# Resultado: {33, 66, 44}

isdisjoint(self, outro_conjunto)

Verifica se dois conjuntos são disjuntos (não têm elementos em comum).

Retorna True se não houver elementos em comum, False caso contrário.

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Criando dois conjuntos
conjunto_a = {66, 22, 33, 44, 99}
conjunto_b = {44, 55, 66, 77, 33}
# Verificando se há elementos em comum
tem_interseccao = conjunto_a.isdisjoint(conjunto_b)
print(tem_interseccao)
# Resultado: False (indicando que há interseção)

issubset(self, outro_conjunto)

Verifica se o conjunto atual é subconjunto do outro conjunto.

Retorna True se for subconjunto, False caso contrário.

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Criando dois conjuntos
conjunto_a = {11, 22, 33, 44}
conjunto_b = {11, 22}
# Verificando relações de subconjunto
e_subconjunto_a_b = conjunto_a.issubset(conjunto_b)
e_subconjunto_b_a = conjunto_b.issubset(conjunto_a)
print(e_subconjunto_a_b)
print(e_subconjunto_b_a)
# Resultados:
#False (A não é subconjunto de B)
#True (B é subconjunto de A)

issuperset(self, outro_conjunto)

Verifica se o conjunto atual é superconjunto do outro conjunto.

Retorna True se for superconjunto, False caso contrário.

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Criando dois conjuntos
conjunto_a = {11, 22, 33, 44}
conjunto_b = {11, 22}
# Verificando relações de superconjunto
e_superconjunto_a_b = conjunto_a.issuperset(conjunto_b)
e_superconjunto_b_a = conjunto_b.issuperset(conjunto_a)
print(e_superconjunto_a_b)
print(e_superconjunto_b_a)
# Resultados:
#True (A é superconjunto de B)
#False (B não é superconjunto de A)

pop(self)

Remove e retorna um elemento aleatório do conjunto.

Como conjuntos são desordenados, o elemento removido pode não ser o "primeiro" na ordem de visualização.

#!/usr/bin/env python
# -*- coding:utf-8 -*-
numeros = {44, 55, 66, 77, 88}
# Exibindo o conjunto
print(numeros)
# Removendo um elemento aleatório
elemento_removido = numeros.pop()
# Exibindo o elemento removido
print(elemento_removido)
# Exibindo o conjunto após remoção
print(numeros)
# Resultados possíveis:
#{88, 66, 44, 77, 55}
#88
#{66, 44, 77, 55}

remove(self, elemento)

Remove um elemento específico do conjunto. Se o elemento não existir, gera um erro.

#!/usr/bin/env python
# -*- coding:utf-8 -*-
numeros = {44, 55, 66, 77, 88}
# Exibindo o conjunto
print(numeros)
# Removendo elemento específico
numeros.remove(44)
# Exibindo o conjunto após remoção
print(numeros)
# Resultados:
#{88, 66, 44, 77, 55}
#{88, 66, 77, 55}

symmetric_difference(self, outro_conjunto)

Retorna a diferença simétrica entre dois conjuntos (elementos que estão em um mas não em ambos).

#!/usr/bin/env python
# -*- coding:utf-8 -*-
conjunto_a = {44, 55, 66, 77, 88}
conjunto_b = {44, 55, 11, 22, 33}
# Encontrando diferença simétrica
diferenca_simetrica = conjunto_a.symmetric_difference(conjunto_b)
print(diferenca_simetrica)
# Resultado: {33, 66, 11, 77, 22, 88}

symmetric_difference_update(self, outro_conjunto)

Atualiza o conjunto atual com a diferença simétrica entre ele e outro conjunto.

#!/usr/bin/env python
# -*- coding:utf-8 -*-
conjunto_a = {44, 55, 66, 77, 88}
conjunto_b = {44, 55, 11, 22, 33}
# Atualizando A com diferença simétrica
conjunto_a.symmetric_difference_update(conjunto_b)
print(conjunto_a)
# Resultado: {33, 66, 11, 77, 22, 88}

union(self, outro_conjunto)

Retorna a união entre dois conjuntos (todos os elementos de ambos, sem duplicatas).

#!/usr/bin/env python
# -*- coding:utf-8 -*-
conjunto_a = {44, 55, 66, 77, 88}
conjunto_b = {44, 55, 11, 22, 33}
# Unindo conjuntos
uniao = conjunto_a.union(conjunto_b)
print(uniao)
# Resultado: {33, 66, 11, 44, 77, 22, 55, 88}

update(self, outro_conjunto)

Atualiza o conjunto atual com elementos do outro conjunto (união in-place).

#!/usr/bin/env python
# -*- coding:utf-8 -*-
conjunto_a = {44, 55, 66, 77, 88}
conjunto_b = {44, 55, 11, 22, 33}
# Atualizando A com elementos de B
conjunto_a.update(conjunto_b)
print(conjunto_a)
# Resultado: {33, 66, 11, 44, 77, 22, 55, 88}

Tags: Python Conjuntos set tipos-de-dados estruturas-de-dados

Publicado em 6-11 01:54 por Thomas