O que é um conjunto em Python e como criar um

O conjunto Python é um literal exclusivo para filtrar valores distintos em uma lista ou matriz de itens. Ao contrário de uma lista, dicionário ou tupla Python, ele não aceita duplicatas. Portanto, pode ser uma ferramenta valiosa de limpeza de dados.

Mas como você pode criar um conjunto e usá-lo em Python? Explicaremos isso neste post.

Recursos dos conjuntos Python

Além de não aceitar duplicatas, um conjunto literal possui outras características que o diferenciam de outros tipos de dados. Aqui estão alguns de seus recursos:

  • É imutável: isso significa que você não pode alterar os valores de um conjunto depois de criá-lo.
  • Um conjunto literal retorna um arranjo dinâmico cada vez que você cria um. Em essência, os itens em um conjunto não são ordenados.
  • Por apresentar itens não ordenados, ao contrário dos literais de lista e dicionário, você não pode obter os valores de um conjunto por seus índices.

Como criar e usar um conjunto Python

Agora que você conhece os recursos básicos de um conjunto Python. Vamos ver como você pode usá-lo em seu programa.

Você usa chaves para criar um conjunto em Python. Portanto, um conjunto é uma lista de itens entre chaves separados por vírgulas:

 mySet = {1, 2, "MUO", "Google"}
print(mySet)
Output: {1, 2, "MUO", "Google"}

Você também pode converter qualquer outro tipo de dados em um conjunto. Por exemplo, o código abaixo converte uma lista em um conjunto:

 myList = [1, 2, "MUO", "Google"]
mySet = set(myList)
print(mySet)
Output: {1, 2, "MUO", "Google"}

Para ter certeza, você pode verificar o tipo de dados de mySet :

 myList = [1, 2, "MUO", "Google"]
mySet = set(myList)
print(type(mySet))
Output: <class 'set'>

Como mencionamos anteriormente, um conjunto não aceita duplicatas. Esse recurso pode ser útil quando você deseja limpar uma matriz removendo valores duplicados.

O código a seguir remove as duplicatas em uma lista e apresenta a saída como um conjunto Python:

 myList = [1, 2, 2 "MUO", "MUO", "Google", "Google"]
mySet = set(myList)
print(mySet)
Output: {1, 2, 'MUO', 'Google'}

Para demonstrar ainda mais o recurso de filtragem de um conjunto, quando você imprime o comprimento de um conjunto, ele não conta valores duplicados:

 mySet = {1, 2, 2, "MUO", "MUO", "Google", "Google"}
print(len(mySet))
Output: 4

Para ver um caso de uso melhor de um conjunto, vamos remover as duplicatas na seguinte matriz. É como consultar as chaves exclusivas em um array.

Para fazer isso, converta um dicionário em um conjunto:

 myDiction = {
"Mango":2, "Orange":2, "carrot":2, "MUO":"tech",
"MUO":"web", "Google":"search", "Google":"engine"
}
uniqueSet = set(myDiction)
print("These are the unique keys: {}".format(uniqueSet))
Output: These are the unique keys: {'Google', 'Mango', 'MUO', 'Orange', 'carrot'}

A conversão acima remove automaticamente os itens duplicados da matriz.

Você pode modificar o código acima usando um loop for para torná-lo mais claro:

 for uniques in uniqueSet:
print(uniques)

Você também pode juntar dois conjuntos com o método union () :

 setA = {1, 3, 5}
setB = {1, 4, 6}
newSet = setA.union(setB)
print(newSet)
Output: {1, 3, 4, 5, 6}

No entanto, o código acima une os dois conjuntos e remove os valores duplicados.

Alternativamente, você pode usar o pipe | função para juntar conjuntos em Python:

 setA = {1, 3, 5}
setB = {1, 4, 6}
newSet = setA|setB
print(newSet)
Output: {1, 3, 4, 5, 6}

Você também pode encontrar a diferença entre dois conjuntos em Python:

 setA = {1, 3, 5}
setB = {2, 4, 5,}
print(setA.difference(setB))
Output: {1, 3}

Você pode encontrar a diferença simétrica entre os conjuntos A e B. Este método retorna os itens em qualquer conjunto, mas exclui suas interseções. Vamos ver como isso funciona:

 setA = {1, 3, 5}
setB = {2, 4, 5,}
print(setA^setB)
Output: {1, 2, 3, 4}

Como alternativa, você pode usar o método symmetric_difference () :

 setA = {1, 3, 5}
setB = {2, 4, 5,}
print(setA.symmetric_difference(setB))
Output: {1, 2, 3, 4}

Vejamos também como você pode encontrar a interseção dos conjuntos abaixo:

 setA = {1, 3, 5}
setB = {1, 4, 6}
setC = {1, 5, 4}
newSet = setA.intersection(setB, setC)
print(newSet)
Output: {1}

Embora você possa anexar a uma lista em Python , você não pode fazer a mesma coisa para um conjunto Python. No entanto, você pode adicionar um item ao final de um conjunto usando a função adicionar .

Mas a função add do Python aceita um argumento, então você só pode adicionar uma tupla a um conjunto. Isso retorna um conjunto aninhado:

 setA = {1, 3, 5}setC = {1, 3}
newSet = 1, 6
setC.add(newSet)
print(setC)
Output: {1, (1, 6), 3}

O conjunto Python usa o método isdisjoint () para verificar se dois conjuntos estão separados. Em seguida, ele retorna um booleano:

 setA = {1, 3, 5}
setB = {1, 4, 6}
findDisjoint = setA.isdisjoint(setB)
print("It's {} that setA is a disjoint of B".format(findDisjoint))
Output: It's False that setA is a disjoint of B

Para verificar se um conjunto é um subconjunto de outro, substitua isdisjoint () por issubset () :

 findSubset = setA.issubset(setB)

Você pode remover um elemento de um conjunto:

 setA = {1, 3, 5}
setA.remove(5)
print(setA)
Output: {1, 3}

O método clear () limpa os elementos em um conjunto e retorna um conjunto vazio:

 setA = {1, 3, 5}
setA.clear()
print(setA)
Output: set()

Você pode remover um item arbitrário de um conjunto e retornar seu valor usando o método set.pop () :

 setA = {1, 3, 5}
print(setA.pop())

Você também pode atualizar um conjunto Python com o método update ():

 setA = {1, 'b'}
setB = {2, 4, 5,}
print(setA.update(setB))
print(setA)
Output: {1, 2, 4, 5, 'b'}

Brinque com conjuntos Python

Embora tenhamos visto como você pode usar um conjunto em Python, ainda existem outras maneiras práticas de aplicá-lo em seu código. Como você viu, pode até ser útil durante a limpeza de dados com Python.

Além de um conjunto, outros tipos de dados Python ou matrizes têm muitos usos e vários aplicativos. Tente brincar com eles para ter um jeito melhor deles.