Python - Conjuntos

Matematicamente, um conjunto é uma coleção de itens que não estão em uma ordem específica. Um conjunto Python é semelhante a esta definição matemática com as condições adicionais abaixo.

  • Os elementos do conjunto não podem ser duplicados.
  • Os elementos do conjunto são imutáveis ​​(não podem ser modificados), mas o conjunto como um todo é mutável.
  • Não há índice anexado a qualquer elemento em um conjunto python. Portanto, eles não suportam nenhuma operação de indexação ou divisão.

Operações de conjunto

Os conjuntos em python são normalmente usados ​​para operações matemáticas como união, interseção, diferença e complemento, etc. Podemos criar um conjunto, acessar seus elementos e realizar essas operações matemáticas conforme mostrado abaixo.

Criação de um conjunto

Um conjunto é criado usando a função set () ou colocando todos os elementos dentro de um par de chaves.

Days=set(["Mon","Tue","Wed","Thu","Fri","Sat","Sun"])
Months={"Jan","Feb","Mar"}
Dates={21,22,17}
print(Days)
print(Months)
print(Dates)

Quando o código acima é executado, ele produz o seguinte resultado. Observe como a ordem dos elementos mudou no resultado.

set(['Wed', 'Sun', 'Fri', 'Tue', 'Mon', 'Thu', 'Sat'])
set(['Jan', 'Mar', 'Feb'])
set([17, 21, 22])

Acessando Valores em um Conjunto

Não podemos acessar valores individuais em um conjunto. Só podemos acessar todos os elementos juntos, conforme mostrado acima. Mas também podemos obter uma lista de elementos individuais percorrendo o conjunto.

Days=set(["Mon","Tue","Wed","Thu","Fri","Sat","Sun"])
 
for d in Days:
	print(d)

Quando o código acima é executado, ele produz o seguinte resultado.

Wed
Sun
Fri
Tue
Mon
Thu
Sat

Adicionando itens a um conjunto

Podemos adicionar elementos a um conjunto usando o método add (). Novamente, conforme discutido, não há índice específico anexado ao elemento recém-adicionado.

Days=set(["Mon","Tue","Wed","Thu","Fri","Sat"])
 
Days.add("Sun")
print(Days)

Quando o código acima é executado, ele produz o seguinte resultado.

set(['Wed', 'Sun', 'Fri', 'Tue', 'Mon', 'Thu', 'Sat'])

Removendo Item de um Conjunto

Podemos remover elementos de um conjunto usando o método discard (). Novamente, conforme discutido, não há índice específico anexado ao elemento recém-adicionado.

Days=set(["Mon","Tue","Wed","Thu","Fri","Sat"])
 
Days.discard("Sun")
print(Days)

Quando o código acima é executado, ele produz o seguinte resultado.

set(['Wed', 'Fri', 'Tue', 'Mon', 'Thu', 'Sat'])

União de Conjuntos

A operação de união em dois conjuntos produz um novo conjunto contendo todos os elementos distintos de ambos os conjuntos. No exemplo abaixo, o elemento “Qua” está presente em ambos os conjuntos.

DaysA = set(["Mon","Tue","Wed"])
DaysB = set(["Wed","Thu","Fri","Sat","Sun"])
AllDays = DaysA|DaysB
print(AllDays)

Quando o código acima é executado, ele produz o seguinte resultado. Observe que o resultado tem apenas um “qua”.

set(['Wed', 'Fri', 'Tue', 'Mon', 'Thu', 'Sat'])

Interseção de conjuntos

A operação de interseção em dois conjuntos produz um novo conjunto contendo apenas os elementos comuns de ambos os conjuntos. No exemplo abaixo o elemento “Qua” está presente em ambos os conjuntos.

DaysA = set(["Mon","Tue","Wed"])
DaysB = set(["Wed","Thu","Fri","Sat","Sun"])
AllDays = DaysA & DaysB
print(AllDays)

Quando o código acima é executado, ele produz o seguinte resultado. Observe que o resultado tem apenas um “qua”.

set(['Wed'])

Diferença de conjuntos

A operação de diferença em dois conjuntos produz um novo conjunto contendo apenas os elementos do primeiro conjunto e nenhum do segundo conjunto. No exemplo a seguir, o elemento “Quarta” está presente em ambos os conjuntos, portanto, não será encontrado no conjunto de resultados.

DaysA = set(["Mon","Tue","Wed"])
DaysB = set(["Wed","Thu","Fri","Sat","Sun"])
AllDays = DaysA - DaysB
print(AllDays)

Quando o código acima é executado, ele produz o seguinte resultado. Observe que o resultado tem apenas um “qua”.

set(['Mon', 'Tue'])

Conjuntos de comparação

Podemos verificar se um determinado conjunto é um subconjunto ou superconjunto de outro conjunto. O resultado é verdadeiro ou falso dependendo dos elementos presentes nos conjuntos.

DaysA = set(["Mon","Tue","Wed"])
DaysB = set(["Mon","Tue","Wed","Thu","Fri","Sat","Sun"])
SubsetRes = DaysA <= DaysB
SupersetRes = DaysB >= DaysA
print(SubsetRes)
print(SupersetRes)

Quando o código acima é executado, ele produz o seguinte resultado.

True
True