2 способа, как найти пересечение множеств в Python

В этом уроке вы узнаете о пересечении множеств в Python, методе set.intersection() и операторе(&), и о том, как их использовать для нахождения пересечения двух или более множеств.

В Python вы можете использовать метод set intersection() или оператор(&) для пересечения двух или более множеств:

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

Метод пересечения() и оператор & имеют одинаковую производительность.

Содержание

Пересечение множеств в Python

При пересечении двух или более множеств вы получите новое множество, состоящее из элементов, существующих в каждом множестве.

Предположим, что у вас есть два следующих множества s1 и s2:

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

Их пересечение возвращает новый набор, содержащий два элемента «Java» и «C++»:

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

…потому что это единственные элементы, существующие в обоих множествах.

Следующая диаграмма Венна иллюстрирует пересечение двух множеств s1 и s2:

Пример пересечения множеств в Python

Пересечение множеств имеет много полезных функций. Например, вы можете использовать набор пересечений, чтобы найти общих фаворитов двух друзей в приложении социальной сети или для поиска общих навыков двух или более сотрудников в приложении HR.

В Python вы можете пересекать два или более множеств, используя метод set intersection() или оператор(&).

1) Использование метода Python set intersection() для пересечения двух или более множеств

В этом примере показано, как использовать метод set intersection() для пересечения двух или более множеств:

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

Ниже показано, как использовать данный метод для пересечения множеств s1 и s2:

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

s = s1.intersection(s2)

print(s)

Выход:

{'C++', 'Java'}

2) Использование оператора(&) для пересечения множеств в Python

Python предоставляет вам оператор пересечения множеств(&), который позволяет пересекать два или более множеств:

new_set = s1 & s2 & s3 & ...

В следующем примере используется оператор(&) для пересечения множеств s1 и s2:

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

s = s1 & s2

print(s)

Выход:

new_set = s1 & s2 & s3 & ...

Отличия применения метода set intersection() от оператора(&)

Оператор пересечения множеств применяется только для множеств, тогда как метод set intersection() может принимать любые итерации, такие как строки, списки и словари.

Если вы передаете итерации методу set intersection(), он преобразует итерации в множество перед их пересечением. Однако оператор(&) вызовет ошибку, если вы используете его с итерируемыми объектами.

В следующем примере метод set intersection() используется для пересечения множества со списком:

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

numbers = numbers.intersection(scores)

print(numbers)

Выход:

{2, 3}

Если вместо этого вы используете оператор(&), то получите ошибку:

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

numbers = numbers & scores

print(numbers)

Выход:

TypeError: unsupported operand type(s) for &: 'set' and 'list'
Похожие посты
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *