JavaRush /Курсы /Модуль 1: Python Core /Операции над множествами

Операции над множествами

Модуль 1: Python Core
6 уровень , 7 лекция
Открыта

8.1 Таблица операторов и методов

Язык Python поддерживает перегрузку операторов, а это значит, что операции над объектами можно делать не только с помощью методов, но и с помощью операторов, таких как: +, -, *, /, | и т.д.

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

Вот таблица таких операторов:

Оператор Метод Описание
| union() Возвращает объединение двух множеств.
& intersection() Возвращает пересечение множеств (только общие элементы).
- difference() Возвращает разность множеств (элементы, которые есть только в первом множестве).
^ symmetric_difference() Возвращает симметрическую разность множеств (элементы, которые есть в одном из множеств, но не в обоих).
<= issubset() Проверяет, является ли одно множество подмножеством другого.
< issubset() Проверяет, является ли одно множество собственным подмножеством другого (строгое подмножество).
>= issuperset() Проверяет, является ли одно множество надмножеством другого.
> issuperset() Проверяет, является ли одно множество собственным надмножеством другого (строгое надмножество).
== __eq__() Проверяет, равны ли множества (содержат одинаковые элементы).
!= __ne__() Проверяет, не равны ли множества (содержат разные элементы).

Очень удобно использовать операторы при работе с множествами – сейчас вы сами в этом убедитесь.

8.2 Работа с множествами через операторы

Объединение (OR)

Оператор | Использование функции union()

 

set1 = {1, 2, 3}
set2 = {3, 4, 5}
union_set = set1 | set2
print(union_set)  # Вывод: {1, 2, 3, 4, 5}
                    

 

set1 = {1, 2, 3}
set2 = {3, 4, 5}
union_set = set1.union(set2)  
print(union_set)  # Вывод: {1, 2, 3, 4, 5}
                            
                    

Пересечение (AND)

Оператор & Использование функции intersection ()

 

set1 = {1, 2, 3}
set2 = {3, 4, 5}
intersection_set = set1 & set2
print(intersection_set)  # Вывод: {3}
                    

 

set1 = {1, 2, 3}
set2 = {3, 4, 5}
intersection_set = set1.intersection(set2)
print(intersection_set)  # Вывод: {3}

Разность (DIFFERENCE)

Оператор - Использование функции difference ()

 

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5}
difference_set = set1 - set2
print(difference_set)  # Вывод: {1, 2}

                    

 

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5}
difference_set = set1.difference(set2)
print(difference_set)  # Вывод: {1, 2}

Симметрическая разность (SYMMETRIC DIFFERENCE)

Оператор ^ Использование функции symmetric_difference ()

 

set1 = {1, 2, 3}
set2 = {3, 4, 5}
s_diff = set1 ^ set2
print(s_diff)  # Вывод: {1, 2, 4, 5}
                    

 

set1 = {1, 2, 3}
set2 = {3, 4, 5}
s_diff = set1.symmetric_difference(set2)
print(s_diff)  # Вывод: {1, 2, 4, 5}

Странно, что нигде не используется оператор + или *, но как говориться хозяин — барин. Разработчики языка Python так решили и им виднее.

2
Задача
Модуль 1: Python Core, 6 уровень, 7 лекция
Недоступна
Объединение и пересечение
Объединение и пересечение
2
Задача
Модуль 1: Python Core, 6 уровень, 7 лекция
Недоступна
Разность множеств
Разность множеств
1
Опрос
Множества в Python, 6 уровень, 7 лекция
Недоступен
Множества в Python
Множества в Python
Комментарии (30)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Anonymous #6518371 Уровень 4
15 августа 2026
как в типовом решении второй задачи гарантируется, что в множестве будет именно 10 элементов? Ведь случайные числа могут совпасть
PaPaY Уровень 13
22 марта 2026

from random import randint

first_user_set = set()
second_user_set = set()

while len(first_user_set) < 10:
    first_user_set.add(randint(1, 20))

while len(second_user_set) < 10:
    second_user_set.add(randint(10, 30))

print(first_user_set)
print(second_user_set)

difference_user_set = first_user_set.difference(second_user_set)
print(difference_user_set)

symmetric_difference_user_set = first_user_set.symmetric_difference(second_user_set)
print(symmetric_difference_user_set)
PaPaY Уровень 13
22 марта 2026

first_user_set = set()
second_user_set = set()
user_range_num  = int(input("Скільки елементів Ви бажаєте додати до своїх множин? "))
for index in range(user_range_num):
    first_user_item = input(f"Введіть {index+1} значення для 1-ї множини: ")
    first_user_set.add(first_user_item)
    second_user_item = input(f"Введіть {index+1} значення для 2-ї множини: ")
    second_user_set.add(second_user_item)

union_user_set = first_user_set.union(second_user_set)
intersection_user_set = first_user_set.intersection(second_user_set)
print(union_user_set)
print(intersection_user_set)
Людмила Уровень 11
18 марта 2026
но как говоритЬся хозяин
Danil Уровень 15
1 февраля 2026
s1 = set(input().split()) s2 = set(input().split()) print(s1.union(s2)) print(s1.intersection(s2))
Анатолий Уровень 63
26 января 2026
Почему в 9 вопросе issubset() не правильно ?
EvgenyXIV Уровень 31
23 марта 2026
в вопросе в названии метода есть буква в верхнем регистре - а такого метода нет)
Vlad Уровень 15
1 октября 2025
Мое решение первого задания. Когда я только подошел к задаче, я сразу её не понял, а решение автора поставило меня в тупик. Но вот только что пришло озарение

def set_function(function_input,temp_set = set()):
    for i in function_input:
        if i != "" and i != " ":
            temp_set.add(i)

user_set_1 = set()
user_set_2 = set()

user_input_1 = input()
user_input_2 = input()

set_function(user_input_1, user_set_1)
set_function(user_input_2, user_set_2)

union_sets = user_set_1.union(user_set_2)
interseption_sets = user_set_1.intersection(user_set_2)

print(union_sets)
print(interseption_sets)
shinobi Уровень 20
26 июля 2025
""но как говоритЬся хозяин — барин"", а Автор - неуч
Peter Уровень 6
15 сентября 2025
Там не нужен Ь. Но зато нужны 2 запятые.Если уж называете кого-то неучем, так хоть сами пишите правильно.
shinobi Уровень 20
18 октября 2025
Прежде чем отвечать - внимательно читайте. Это цитата автора, это он не поставил запятые, и влепил "ь". Если уж решаетесь кому-то что-то писать, то сперва научитесь читать.
Slevin Уровень 59
25 июня 2025
Викторина: === 1 === Как проверить, является ли одно множество подмножеством другого? - Используя метод isSubset() Серьезно, пытаемся подловить учеников, предположивших опечатку? Окей, а сколько из них решат, что про метод issubset() они неправильно выучили? - С помощью оператора < Тоже будет считаться неправильным, несмотря на то что "строгое подмножество" всё еще является подмножеством ? A ⊂ B и одновременно A ⊆ B === 2 === Ответ с фильтром по функции lambda не был принят в вопросе про подмножество из элементов удовлетворяющих условию. А чо так? Почему нельзя? Докажите, что нельзя
EvgenyXIV Уровень 31
23 марта 2026
про lambda: может потому, что автор в лекции указывал, что надо результат функции lambda преобразовывать в множество отдельной операцией set(), а генератор создаёт множество "на лету"...
Marina Уровень 23 Expert
8 июня 2025
Правильное решение не правильное. Множества могут сгенерироваться из уникальных элементов, но там может быть меньше 10 элементов