Sets em Python
Sets em Python são coleções não ordenadas de elementos únicos. Ou seja, ao contrário de listas ou tuplas, os sets não permitem valores duplicados e não mantêm uma ordem específica para os elementos.
Os sets são semelhantes ao conceito matemático de conjuntos, os quais são coleções de objetos distintos.
Em Python, sets são caracterizados por chaves delimitadoras:
# exemplo de set
meu_set = {'oi', 'ana', 'abacaxi'}
Eles podem ser criados de mais de uma forma. Uma maneira é com a função set(). Esta função recebe um iterável (como uma lista, tupla ou string) como entrada e o converte em um set, removendo duplicatas.
minha_lista = [1, 2, 3, 4, 5]
meu_set = set(minha_lista)
print(meu_set)
# resultado: {1, 2, 3, 4, 5}
Sets também podem ser criados diretamente com o uso de chaves {}.
meu_set = {1, 2, 3, 4, 5}
print(meu_set)
# resultado: {1, 2, 3, 4, 5}
As principais características dos sets em Python
Sets são não ordenados
Os elementos em um set não têm uma ordem específica. Se você iterar sobre um conjunto, os elementos podem aparecer em uma ordem diferente a cada vez. Veja no exemplo abaixo:
# sets são não ordenados: cada vez que um loop é executado, a ordem dos elementos pode mudar
meu_set = {'gato', 1, 'cachorro', 3}
for item in meu_set:
print(item)
# executa 1 vez
# 1
# gato
# 3
# cachorro
# executa de novo:
# 1
# 3
# gato
# cachorro
Sets possuem apenas elementos únicos
Os sets não aceitam elementos duplicados. Se você tentar adicionar duplicatas, o Python descartará os extras, mantendo apenas uma instância de cada item, como no exemplo:
meu_set = {'gato', 'gato', 'gato', 'cachorro'}
print(meu_set)
# resultado: {'gato', 'cachorro'}
Sets são mutáveis
Você pode adicionar ou remover elementos após criar um set. Elementos podem ser adicionados a um set com a função add() para adicionar um item apenas ou update() para adicionar vários.
# exemplo com add()
meu_set = {1, 2, 3, 4}
meu_set.add(5)
print(meu_set)
# resultado: {1, 2, 3, 4, 5}
# exemplo com update()
meu_set.update([6, 7, 8])
print(meu_set)
# resultado: {1, 2, 3, 4, 5, 6, 7, 8}
Use os métodos remove(), discard() ou pop() para remover elementos de um set.
meu_set = {1, 2, 3, 4, 5, 6, 7}
meu_set.remove(1)
print(meu_set)
# resultado: {2, 3, 4, 5, 6, 7}
Embora os sets sejam mutáveis, os elementos num set são imutáveis. Isso significa que você não pode alterar um elemento que já está no conjunto. Por exemplo, você não pode adicionar uma lista a um set e, em seguida, modificar o conteúdo dessa lista no conjunto. Veja um exemplo ilustrativo disso abaixo:
meu_set = {1, 2, 3, 5, 6}
print(meu_set)
# resultado: {1, 2, 3, 5, 6}
# tenta mudar item
meu_set[1] = 10
# resultado: TypeError: 'set' object does not support item assignment
Alguns métodos do Python para sets
len()
Verifica o tamanho de um set:
meu_set = {'a', 'b', 'c'}
print(len(meu_set))
# resultado: 3
max()
Retorna o valor máximo em um set:
meu_set = {100, 1000, 1, 2}
print(max(meu_set))
# resultado: 1000
min()
Retorna o valor mínimo em um set:
meu_set = {-1, 10, 1, 2}
print(min(meu_set))
# resultado: -1
sum()
Calcula a soma de um set:
meu_set = {-10, 100, 33, 17}
print(sum(meu_set))
# resultado: 140
sorted()
meu_set = {-10, 100, 33, 17}
print(sorted(meu_set))
# resultado: [-10, 17, 33, 100]
Crie sets imutáveis com frozenset
Embora os sets em Python sejam mutáveis, nossa linguagem preferida também fornece sets imutáveis chamados frozensets (conjuntos congelados). Eles são criados usando a função frozenset(), como ilustrado abaixo:
vogais = ('a', 'e', 'i', 'o', 'u')
meu_frozenset = frozenset(vogais)
Como são imutáveis, frozensets não permitem o uso de métodos como add() e remove().
Operações de conjuntos
Python fornece operações internas para trabalhar com conjuntos equivalentes às operações matemáticas tradicionais. Elas incluem operações como união (combinação de elementos) e interseção (encontrar elementos comuns).
União e interseção de sets
Veja um exemplo de união e interseção de sets em Python:
set1 = {1, 2, 3}
set2 = {3, 4, 5}
union_set = set1 | set2 # união
print(union_set)
# resultado: {1, 2, 3, 4, 5}
intersection_set = set1 & set2 # interseção
print(intersection_set)
# resultado: {3}
As operações de conjuntos também incluem diferença (diferença entre dois conjuntos A e B inclui elementos do conjunto A que não estão presentes no conjunto B) e diferença simétrica (a diferença simétrica entre dois conjuntos A e B inclui todos os elementos de A e B sem os elementos comuns).
set1 = {2, 3, 5}
set2 = {1, 2, 6}
difference_set = set1 - set2 # diferença
print(difference_set)
# resultado: {3, 5}
symmetric_difference_set = set1 ^ set2 # diferença simétrica
print(symmetric_difference_set)
# resultado: {1, 3, 5, 6}
Além dessas operações, o Python conta com vários outros métodos para sets. Eles podem ser verificados na documentação oficial.
Usos comuns de sets
Os sets são muito utilizados para remoção de duplicatas. Uma das principais vantagens dos sets é eliminar eficientemente as duplicatas de uma lista ou sequência sem precisar do uso de loops. Em IA, essa utilidade é frequentemente usada para a criação de vocabulários para o treinamento de chatbots e outras tarefas de processamento de linguagem natural. Portanto, quando você precisa de uma coleção para armazenar apenas valores distintos, os sets são a estrutura de dados ideal.
Sets também são usados para determinar rapidamente se um elemento existe em um conjunto usando o operador in eficientemente.
Veja também:
Encontrou algum erro ou quer fazer uma sugestão? Por favor, entre em contato usando nosso formulário de contatos.