Diferença de conjuntos do Python

Resumo: neste tutorial, você aprenderá como obter a diferença entre dois conjuntos do python e como usá-la para encontrar a diferença entre dois ou mais conjuntos.

Introdução à diferença do Python Set

A diferença entre os dois conjuntos resulta em um novo conjunto que possui elementos do primeiro conjunto que não estão presentes no segundo conjunto.

Suponha que você tenha os seguintes conjuntos s1 e s2:

s1 = {'Python', 'Java', 'C++'}
s2 = {'C#', 'Java', 'C++'}

A diferença entre s1 e s2 resulta no seguinte conjunto com um elemento:

{'Python'}

…porque só existe o elemento 'Python' do primeiro conjunto que não existe no segundo conjunto.

A diferença de conjuntos não é comutativa. A diferença entre os conjuntos s2 e s1 retorna o seguinte conjunto:

{'C#'}

O diagrama de Venn a seguir ilustra a diferença entre os conjuntos s1 e s2:


E o seguinte diagrama de Venn ilustra a diferença entre os conjuntos s2 e s1:


Em Python, você pode usar o método dos conjuntos difference() ou o operador de diferença de conjunto (-) para encontrar a diferença entre os conjuntos.

1) Usando o método difference() do Python para encontrar a diferença entre os conjuntos

Os conjuntos do tipo Set possui um método difference() que retorna a diferença entre dois ou mais conjuntos:

set1.difference(s2, s3, ...)

Por exemplo, você pode usar o método difference() para encontrar a diferença entre os conjuntos s1 e s2:

s1 = {'Python', 'Java', 'C++'}
s2 = {'C#', 'Java', 'C++'}
s = s1.difference(s2)

print(s)

Saída:

{'Python'}

E este exemplo mostra como usar o método difference() dos set para encontrar a diferença entre os conjuntos s2 e s1.

s1 = {'Python', 'Java', 'C++'}
s2 = {'C#', 'Java', 'C++'}
s = s2.difference(s1)

print(s)

Saída:

{'C#'}

Observe que o método difference() retorna um novo conjunto. Não altera os conjuntos originais.

2) Usando o operador de diferença de conjunto do Python (-) para encontrar a diferença entre os conjuntos

Além do método difference(), o Python fornece o operador de diferença de conjunto (-) que permite encontrar a diferença entre conjuntos.

s = s1 - s2

O exemplo a seguir usa o operador de diferença (-) para encontrar a diferença entre os conjuntos s1 e s2:

s1 = {'Python', 'Java', 'C++'}
s2 = {'C#', 'Java', 'C++'}
s = s1 - s2

print(s)

E este exemplo usa o operador de diferença de conjunto para retornar a diferença entre s2 e s1:

s1 = {'Python', 'Java', 'C++'}
s2 = {'C#', 'Java', 'C++'}
s = s2 - s1

print(s)

Saída:

{'C#'}

O método difference() versus o operador (-)

O método difference() pode aceitar um ou mais iteráveis ​​(por exemplo, strings, listas, dicionários) enquanto o operador de diferença de conjuntos (-) permite apenas conjuntos.

Quando você passa iteráveis para o método difference() dos conjuntos, ele converte os iteráveis em conjuntos antes de realizar a operação de diferença.

Veja a seguir como usar o método difference() dos conjuntos com uma lista:

scores = {7, 8, 9}
numbers = [9, 10]
new_scores = scores.difference(numbers)

print(new_scores)

No entanto, se você usar o operador de diferença de conjunto (-) com iteráveis, receberá um erro:

scores = {7, 8, 9}
numbers = [9, 10]
new_scores = scores - numbers

print(new_scores)

Erro:

TypeError: unsupported operand type(s) for -: 'set' and 'list'

Resumo

  • Uma diferença entre dois conjuntos resulta em um novo conjunto contendo elementos do primeiro conjunto que não estão presentes no segundo conjunto.
  • Use o método difference() de conjunto ou o operador de diferença de conjunto (-) para encontrar a diferença entre os conjuntos.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *