Curso de Python

Aula 12 - Sets em Python

Sets em Python

Sets são sequências desordenadas (Não possuem uma ordem específica, ou seja, a ordem de seus elementos é aleatória) e são muito úteis em situações específicas. Os sets, diferentemente das listas, possuem chaves, e cada elemento também é separado por vírgulas. Os sets não aceitam valores repetidos, isso é muito bom para eliminar todos os valores de uma lista comum, por exemplo.

sets.py
# Removendo duplicados de uma lista
lista = ['a', 'a', 'b', 'a', 'c', 'a', 'b', 'b', 'b', 'c']
lista = set(lista)  # Convertendo para set
lista = list(lista)  # Convertendo de volta para lista
print(lista)  # ['a', 'b', 'c']

Trabalhando com Sets

Vamos supor que queremos fazer um bolo. Alguém muito inexperiente em culinária separou os ingredientes:

ingredientes.py
ingredientes = {'Farinha', 'Trigo', 'Madeira', 'Alface'}
print(ingredientes)  # {'Farinha', 'Trigo', 'Madeira', 'Alface'}

# Removendo elementos incorretos
ingredientes.remove('Madeira')
print(ingredientes)  # {'Farinha', 'Alface', 'Trigo'}

ingredientes.remove('Alface')
print(ingredientes)  # {'Farinha', 'Trigo'}

# Adicionando novos ingredientes
ingredientes.add('Fermento')
print(ingredientes)  # {'Trigo', 'Farinha', 'Fermento'}

ingredientes.add('Açucar')
ingredientes.add('Ovos')
ingredientes.add('Leite')
ingredientes.add('Manteiga')
print(ingredientes)  # {'Açucar', 'Farinha', 'Fermento', 'Ovos', 'Trigo', 'Leite', 'Manteiga'}

Limpando e Verificando Sets

Imagine agora temos um set que possui algumas frutas dentro dele, mas com elementos incorretos:

frutas.py
frutas = {'Maçã', 'João', 'Banana', 'Pedro', 'Vinicius', 'Abacaxi', 'Limão', 'Felipe', 'Macarrão', 'Peixes'}

# Limpando o set completamente
frutas.clear()
print(frutas)  # set()

# Adicionando frutas corretas
frutas.add('Maçã')
frutas.add('Banana')
frutas.add('Limão')
frutas.add('Abacaxi')
print(frutas)  # {'Banana', 'Maçã', 'Limão', 'Abacaxi'}

# Verificando elementos
print('Maçã' in frutas)  # True
print('Banana' in frutas)  # True
print('Vinicius' not in frutas)  # True
print('Pedro' not in frutas)  # True

# Contando elementos
quantidade = len(frutas)
print(quantidade)  # 4

Conclusão

Os sets são muito poderosos e apresentam muitas funcionalidades úteis, especialmente para trabalhar com coleções de elementos únicos e operações matemáticas entre conjuntos.