Разность множеств в Python — метод set.different() и оператор(-)

В этом уроке вы узнаете о Set difference в Python и о том, как находить разность между двумя или более множествами с помощью метода set.different() и оператора вычитания(-).

Содержание

Введение в разность множеств в Python

Разница между двумя множествами приводит к созданию нового множества, в котором есть элементы из первого множества, но которых нет во втором.

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

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

Разность наборов s1 и s2 приводит к следующему множеству с одним элементом:

{'Python'}

…потому что из первого множества есть только элемент ‘Python’, которого нет во втором множестве.

Установленная разность не является коммутативной. Разность между множествами s2 и s1 возвращает следующий набор:

{'C#'}

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

Пример разности множеств s1 и s2 в Python

А следующая диаграмма Венна иллюстрирует разность между множествами s2 и s1:

Пример разности множеств s2 и s1 в Python

В Python вы можете использовать метод Set difference() или оператор вычитания (-), чтобы найти разность множеств.

1) Использование метода Python Set Different() для нахождения разности множеств

Тип Set имеет метод Different(), который возвращает разницу между двумя или более множествами:

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

Например, вы можете использовать метод set.different(), чтобы найти разность между множествами s1 и s2:

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

print(s)

Выход:

{'Python'}

В этом примере показано, как использовать метод set Different(), чтобы найти разность множеств s2 и s1.

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

print(s)

Выход:

{'C#'}

Обратите внимание, что метод different() возвращает новое множество, не меняя исходные наборы.

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

Помимо метода Different(), Python предоставляет вам оператор(-), который позволяет находить разность между множествами.

s = s1 - s2

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

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

print(s)

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

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

print(s)

Выход:

{'C#'}

Отличия в применении метода set.different() и оператора(-)

Метод set.different() может принимать одну или несколько итераций (например, строки, списки, словари), тогда как оператор вычитания(-) допускает только множества.

Когда вы передаете итерации в метод set different(), он преобразует итерации в множества перед выполнением операции нахождения разности.

Ниже показано, как использовать метод set.different() со списком:

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

print(new_scores)

Однако если вы используете оператор(-) с итерируемыми объектами, вы получите ошибку:

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

print(new_scores)

Ошибка:

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

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