Sets (conjunto) é uma coleção não ordenada de itens. Cada elemento do conjunto é único (sem duplicatas) e deve ser imutável (não pode ser alterado).
No entanto, um conjunto em si é mutável. Podemos adicionar ou remover itens dele.
Os conjuntos também podem ser usados para executar operações matemáticas de conjuntos, como união, interseção, diferença simétrica etc.
Python Sets - como criar Sets
Um conjunto é criado colocando todos os itens (elementos) dentro de chaves {}, separados por vírgula ou usando a função interna set ().
Pode ter qualquer número de itens e eles podem ser de tipos diferentes (número inteiro, flutuante, tupla, sequência etc.). Mas um conjunto não pode ter elementos mutáveis como listas, conjuntos ou dicionários como elementos, exemplo:
Diferentes tipos de conjuntos em Python
# conjunto de números inteiros
meu_set = {1, 2, 3}
print (meu_set)
# conjunto de tipos de dados mistos
meu_set = {1.0, "Olá", (1, 2, 3)}
print (meu_set)Resultado:
{1, 2, 3}
{1.0, (1, 2, 3), 'Olá'}
Criar um conjunto vazio é um pouco complicado.
Aparelhos cacheados vazios {} criarão um dicionário vazio em Python. Para criar um conjunto sem nenhum elemento, usamos a função set() sem nenhum argumento. Exemplo:
Distinguir conjunto e dicionário ao criar um conjunto vazi
# inicialize a com {}
a = {}
# verificar o tipo de dados de um
print(type(a))
# inicialize a com set ()
a = set ()
# verificar o tipo de dados de um
print(type(a))Resultado:
<classe 'dict'>
<classe 'set'>
Python Sets - Modificando um conjunto em Python
Conjuntos são mutáveis. No entanto, como não são ordenadas, a indexação não tem significado.
Não podemos acessar ou alterar um elemento de um conjunto usando indexação ou fatia. O tipo de dados definido não é compatível.
Podemos adicionar um único elemento usando o método add () e vários elementos usando o método update (). O método update () pode levar tuplas, listas, strings ou outros conjuntos como argumento. Em todos os casos, duplicatas são evitadas.
Exemplo:
# initialize meu_set
meu_set = {1, 3}
print(meu_set)
# se você descomentar a linha 9,
# você receberá um erro
# TypeError: o objeto 'set' não suporta indexação
# meu_set [0]
# adicionar um elemento
# Saída: {1, 2, 3}
meu_set.add(2)
print(meu_set)
# adicionar vários elementos
# Saída: {1, 2, 3, 4}
meu_set.update([2, 3, 4])
print(meu_set)
# adicionar lista e definir
# Saída: {1, 2, 3, 4, 5, 6, 8}
meu_set.update([4, 5], {1, 6, 8})
print(meu_set)
Resultado:
{1, 3}
{1, 2, 3}
{1, 2, 3, 4}
{1, 2, 3, 4, 5, 6, 8}
Python Sets - Como remover elementos de um set
Um item específico pode ser removido de um conjunto usando os métodos descard() e remove().
A única diferença entre os dois é que a função descard() deixa um set inalterado se o elemento não estiver presente no conjunto. Por outro lado, a função remove() gera um erro nessa condição (se o elemento não estiver presente no conjunto).
Exemplo:
Diferença entre descartar () e remover ()
# initialize meu_set
meu_set = {1, 3, 4, 5, 6}
print(meu_set)
# descartar um elemento
# Saída: {1, 3, 5, 6}
meu_set.discard(4)
print (meu_set)
# remover um elemento
# Saída: {1, 3, 5}
meu_set.remove (6)
print(meu_set)
# descartar um elemento
# não presente no meu_set
# Saída: {1, 3, 5}
meu_set.discard(2)
print(meu_set)
# remover um elemento
# não presente no meu_set
# você receberá um erro.
# Saída: KeyError
meu_set.remove(2)Resultado:
{1, 3, 4, 5, 6}
{1, 3, 5, 6}
{1, 3, 5}
{1, 3, 5}
Traceback (última chamada mais recente):
Arquivo "<string>", linha 28, em <module>
KeyError: 2
Python Sets - Como acessar Sets em Python
Você não pode acessar itens em um conjunto consultando um índice, pois os conjuntos são desordenados e os itens não têm índice.
Mas você pode percorrer os itens do conjunto usando um loop for ou perguntar se um valor especificado está presente em um conjunto, usando a palavra-chave in.
Exemplo
Faça um loop pelo conjunto e imprima os valores:
meu_set = {"maçã", "banana", "cereja"}
for x in meu_set:
print(x)
Python Sets - Como unir dois Sets em python
Existem várias maneiras de associar dois ou mais conjuntos no Python.Você pode usar o método union() que retorna um novo conjunto contendo todos os itens de ambos os conjuntos ou o método update() que insere todos os itens de um conjunto em outro:
Exemplo 1:
O método union() retorna um novo conjunto com todos os itens dos dois conjuntos:
set1 = {"a", "b", "c"}
set2 = {1, 2, 3}
set3 = set1.union (set2)
print(set3)Resultado:
{1, 2, 'a', 'b', 3, 'c'}
Exemplo 2:
O método update() insere os itens no conjunto2 no conjunto1:
set1 = {"a", "b", "c"}
set2 = {1, 2, 3}
set1.update (set2)
print(set1)Resultado:
{1, 2, 3, 'a', 'b', 'c'}
Nota: union() e update() excluirão quaisquer itens duplicados.
Python Sets - construtor set()
Também é possível usar o construtor set () para criar um conjunto.
Exemplo
Usando o construtor set() para criar um conjunto:
meu_set = set (("maça", "banana", "coco")) # observe os colchetes duplos
print (meu_set)Resultado:
{'maça', 'coco', 'banana'}
Python Sets - Métodos de Sets no Python
add() Adiciona um elemento ao conjunto
clear() Remove todos os elementos do conjunto
copy() Retorna uma cópia do conjunto
difference() Retorna um conjunto contendo a diferença entre dois ou mais conjuntos
difference_update() Remove os itens deste conjunto que também estão incluídos em outro conjunto especificado
discard() Remova o item especificado
intersection() Retorna um conjunto, que é a interseção de outros dois conjuntos
intersection_update() Remove os itens deste conjunto que não estão presentes em outros conjuntos especificados
isdisjoint() Retorna se dois conjuntos têm uma interseção ou não
issubset() Retorna se outro conjunto contém esse conjunto ou não
issuperset() Retorna se este conjunto contém outro conjunto ou não
pop() Remove um elemento do conjunto
remove() Remove o elemento especificado
symmetric_difference() Retorna um conjunto com as diferenças simétricas de dois conjuntos
symmetric_difference_update() insere as diferenças simétricas deste conjunto e outro
union() Retornar um conjunto contendo a união de conjuntos
update() Atualize o conjunto com a união deste e de outros

0 Comentários