Interseção de conjuntos do Python

Resumo: neste tutorial, você aprenderá sobre a interseção de conjuntos do Python e como usá-la para cruzar dois ou mais conjuntos.

TL;DR

Em Python, você pode usar o método intersection() dos conjuntos ou definir o operador de interseção (&) para cruzar dois ou mais conjuntos:

new_set = set1.intersection(set2, set3)
new_set = set1 & set2 & set3

O método de intersection() e o operador & têm o mesmo desempenho.

Introdução à interseção de conjunto Python

Ao cruzar dois ou mais conjuntos, você obterá um novo conjunto composto por elementos que existem em todos os conjuntos.

Suponha que você tenha dois conjuntos a seguir s1 e s2:

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

A interseção desses dois conjuntos retorna um novo conjunto que contém dois elementos ('Java' e 'C++'):

s = {'Java', 'C++'}

…porque são os únicos elementos que existem em ambos os conjuntos.

O diagrama de Venn a seguir ilustra a interseção de dois conjuntos s1 e s2:


A interseção definida tem muitas aplicações úteis. Por exemplo, você pode usar interseções definidas para encontrar os favoritos comuns de dois amigos em um aplicativo de rede social ou para pesquisar habilidades comuns de dois ou mais funcionários em um aplicativo de RH.

Em Python, você pode cruzar dois ou mais conjuntos usando o método intersection() ou o operador de interseção de conjuntos (&).

1) Usando o método intersection() para cruzar dois ou mais conjuntos

Este exemplo mostra como usar o método intersection() para cruzar dois ou mais conjuntos:

new_set = set1.intersection(set2, set3, ...)

O seguinte mostra como usar o método intersection() para intersectar os conjuntos s1 e s2:

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

s = s1.intersection(s2)

print(s)

Saída:

{'C++', 'Java'}

2) Usando o operador de interseção de conjuntos (&) para cruzar dois ou mais conjuntos

O Python fornece o operador de interseção de conjuntos (&) que permite a interseção de dois ou mais conjuntos:

new_set = s1 & s2 & s3 & ...

O exemplo a seguir usa o operador de interseção de conjunto (&) para fazer a interseção dos conjuntos s1 e s2:

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

s = s1 & s2

print(s)

Saída:

new_set = s1 & s2 & s3 & ...

Método de intersection() vs operador de interseção (&)

O operador de interseção permite apenas conjuntos, enquanto o método intersection() pode aceitar quaisquer iteráveis, como strings, listas e dicionários.

Se você passar iteráveis para o método intersection(), ele converterá os iteráveis para definir antes de interseccioná-los.

No entanto, o operador de interseção definido (&) gerará um erro se você usá-lo com iteráveis.

O exemplo a seguir usa o método intersection() para cruzar um conjunto com uma lista:

numbers = {1, 2, 3}
scores = [2, 3, 4]

numbers = numbers.intersection(scores)

print(numbers)

Saída:

{2, 3}

Se você usar o operador de interseção (&), receberá um erro:

numbers = {1, 2, 3}
scores = [2, 3, 4]

numbers = numbers & scores

print(numbers)

Saída:

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

Resumo

  • A interseção de dois ou mais conjuntos retorna elementos que existem em todos os conjuntos.
  • Use o método intersection() ou o operador de interseção de conjunto (&) para fazer a interseção de dois ou mais conjuntos.

Deixe um comentário

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