Разность множеств в Python — метод set.different() и оператор(-)
В этом уроке вы узнаете о Set difference в Python и о том, как находить разность между двумя или более множествами с помощью метода set.different() и оператора вычитания(-).
- Введение в разность множеств в Python
- 1) Использование метода Python Set Different() для нахождения разности множеств
- 2) Использование оператора вычитания(-) для нахождения разности множеств
- Отличия в применении метода set.different() и оператора(-)
Введение в разность множеств в Python
Разница между двумя множествами приводит к созданию нового множества, в котором есть элементы из первого множества, но которых нет во втором.
Предположим, у вас есть следующие множества s1 и s2:
s1 = {'Python', 'Java', 'C++'} s2 = {'C#', 'Java', 'C++'}
Разность наборов s1 и s2 приводит к следующему множеству с одним элементом:
{'Python'}
…потому что из первого множества есть только элемент ‘Python’, которого нет во втором множестве.
Установленная разность не является коммутативной. Разность между множествами s2 и s1 возвращает следующий набор:
{'C#'}
Следующая диаграмма Венна иллюстрирует разность между множествами s1 и s2:
А следующая диаграмма Венна иллюстрирует разность между множествами s2 и s1:
В 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'