Manipulando sets no Python

Os sets são uma coleção de itens desordenada, parcialmente imutável e que não podem conter elementos duplicados. Por ser parcialmente imutável, os sets possuem permissão de adição e remoção de elementos.

Além disso, os sets são utilizados, normalmente, com operações matemáticas de união, interseção e diferença simétrica, conforme veremos nos próximos tópicos.

Neste artigo, veremos como manipular os sets com os principais métodos disponibilizados pela API de Collections do Python.

Declarando Sets

Para declarar um set no Python é bem simples. Seus elementos devem estar entre chaves ({}) ou utilizando o método set() do próprio Python, como podemos ver abaixo:

 # Declaração de um set
meu_set = {1, 2, 3, 4, 1}
print(type(meu_set))

meu_set_2 = set([1, 2, 8, 9, 10])
print(type(meu_set_2))

O código acima, que pode ser visto no seguinte link (https://onlinegdb.com/rkPa6QyZ8), criará dois sets, o primeiro utilizando as chaves ({}) e separando os elementos por vírgula (,) e o segundo utilizando o método set(). As duas formas terão o mesmo resultado:

Adicionando, atualizando e removendo elementos dos Sets

Os sets permitem as operações de adição, atualização e remoção de elementos. Para isso, existe um método para cada funcionalidade, como podemos ver abaixo:

meu_set = {1, 2, 3, 4, 1}

# Adicionando elementos
meu_set.add(2)
print("Adição", meu_set)

# Atualizando set
meu_set.update([3, 4, 5, 6])
print("Atualição", meu_set)

# Removendo elemento
meu_set.discard(2)
print("Remoção", meu_set)

Como podemos ver no trecho de código acima, o método add() é responsável por adicionar um elemento ao set, desde que ele já não esteja adicionado, pois os sets não permitem elementos duplicados.

Python - Fundamentos
Curso de Python - Fundamentos
CONHEÇA O CURSO

Já o método update() permite atualizar os sets e adicionar os elementos (que não estejam duplicados) em sua estrutura.

Por fim, o método discard() permite a remoção de um elemento do set.

Operações matemáticas com Sets

Os sets, além das operações de manipulação vistas anteriormente, permitem operações matemáticas como união, interseção, diferença e diferença simétrica, conforme veremos abaixo.

meu_set = {1, 2, 3, 4, 1}
meu_set_2 = set([1, 2, 8, 9, 10])

# União
print("União")
print(meu_set | meu_set_2)
print(meu_set.union(meu_set_2))

# Interseção
print("Interseção")
print(meu_set & meu_set_2)
print(meu_set.intersection(meu_set_2))

# Diferença
print("Diferença")
print(meu_set - meu_set_2)
print(meu_set.difference(meu_set_2))

# Diferença Simétrica
print("Diferença Simétrica")
print(meu_set ^ meu_set_2)
print(meu_set.symmetric_difference(meu_set_2))

O resultado da execução acima pode ser vista no seguinte link: https://onlinegdb.com/Sk_hsEJ-U.


Na união ( | ), todos os elementos dos dois sets serão “unidos” em um, formando um único set com todos os elementos, sem repetí-los, claro.

Na Interseção ( & ), apenas os elementos que estiverem nos dois sets restarão.

Já na diferença ( – ), restarão apenas os elementos que estiverem em um dos set, mas não no segundo.

Por fim, na diferença simétrica ( ^ ), apenas os elementos que estiverem nos dois sets, porém que não se repitam, serão exibidos.

Deixe seu comentário

Professor na TreinaWeb e graduado em Sistemas de Informação pelo Instituto Federal da Bahia. Apaixonado por desenvolvimento web, desktop e mobile desde os 12 anos de idade. Já utilizou todos os sistemas operacionais possíveis, mas hoje se contenta com o OSX instalado em seu desktop. Quando não está trabalhando, é IGL e Awper do time de CS:GO da Treinaweb. Até passou em uma peneira do Cruzeiro, mas preferiu estudar Python.

© 2004 - 2019 TreinaWeb Tecnologia LTDA - CNPJ: 06.156.637/0001-58 Av. Paulista, 1765, Conj 71 e 72 - Bela Vista - São Paulo - SP - 01311-200