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
Комментарии (22)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
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 Уровень 19
26 июля 2025
""но как говоритЬся хозяин — барин"", а Автор - неуч
Peter Уровень 3
15 сентября 2025
Там не нужен Ь. Но зато нужны 2 запятые.Если уж называете кого-то неучем, так хоть сами пишите правильно.
shinobi Уровень 19
18 октября 2025
Прежде чем отвечать - внимательно читайте. Это цитата автора, это он не поставил запятые, и влепил "ь". Если уж решаетесь кому-то что-то писать, то сперва научитесь читать.
Slevin Уровень 1
25 июня 2025
Викторина: === 1 === Как проверить, является ли одно множество подмножеством другого? - Используя метод isSubset() Серьезно, пытаемся подловить учеников, предположивших опечатку? Окей, а сколько из них решат, что про метод issubset() они неправильно выучили? - С помощью оператора < Тоже будет считаться неправильным, несмотря на то что "строгое подмножество" всё еще является подмножеством ? A ⊂ B и одновременно A ⊆ B === 2 === Ответ с фильтром по функции lambda не был принят в вопросе про подмножество из элементов удовлетворяющих условию. А чо так? Почему нельзя? Докажите, что нельзя
Marina Уровень 23 Expert
8 июня 2025
Правильное решение не правильное. Множества могут сгенерироваться из уникальных элементов, но там может быть меньше 10 элементов
SWK Уровень 26
26 марта 2025
Это чудо или особенности реализации?
23 мая 2025
Из 20 случайных чисел только 15 оказались уникальными. Повторные не были добавлены в множество
Олег Никулин Уровень 69
22 марта 2025
def set_n(): set_ = set() for i in range(3): s = input() set_.add(s) return set_ set_1 = set_n() set_2 = set_n() set_3 = set_2.union(set_1) print(set_3) set_4 = set_2.intersection(set_1) print(set_4) Почему это не принято? "Проверьте ваш код, похоже вы используете бесконечный цикл" В Pycharm работает
Олег Никулин Уровень 69
22 марта 2025
При запуске. При проверке схавал)
21 февраля 2025

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 - set2 print(difference_set) # Вывод: {1, 2} Почему вывод без 5?
Марина Уровень 14
20 марта 2025
difference Возвращает разность множеств (элементы, которые есть только в первом множестве). Только в первом множестве))
Mr.Robot Уровень 21 Expert
27 января 2025
Случайные числа, они такие случайные, что могут аннигилировать ) Обращайте внимание на это во 2-й задаче.
Александр Уровень 19 Expert
20 января 2025
Я не знаю, что за монстры тут учатся, но как можно было решить первую задачу ? в статистике решения говорится что на сегодняшний день ее решили 240 человек, затратив в среднем 1.5 попытки. а я не смог даже набросать решение, которое бы работало с их данными в веб-версии (в pycharm мое решение работало, я не совсем тупой, но только с моими данными, с простым вводом). Я все-таки надеюсь, что большинство просто подсмотрели готовое решение. Да и еще и не поняли как это работает. И почему. Зачем было использовать map? хотя работает из без приведения к целым числам... Мне кажется создатели курса перегнули палку. Тут же должны быть новички, у них всего какие-то часы обучения за спиной. Увидев решение, и разобрав его работу, задача кажется уже не такой сложной. Но она была скорее непонятной. Нужно было бы все-таки хоть намекнуть, чтобы пользователи обратили внимание на ввод данных. Не буду намекать. Попробуйте решить сами.
Mr.Robot Уровень 21 Expert
27 января 2025
А я и забыл, что тут где-то решения должны быть ) Там - через map? Хмм.. я решил внаглую сделать через одну строку в input и сплит по запятой. И прожевало... Как-то даже меньше мучался, чем с предыдущим разделом.
Dmitry Ryabov Уровень 23
27 января 2025
Решил с первой попытки, решаю если что через сайт, без использования PyCharm. Задача не такая уж сложная, если посмотреть на формат ввода в тестовых данных. Не надо в решениях учитывать то, чего не просят. Не стоит пытаться делать сразу совершенную программу. Посмотрел предложенное решение, оно действительно не соответствует тем знаниям, которые по идее должны быть у учеников на данном этапе.
Николай Уровень 17
15 февраля 2025
А как можно посмотреть сколько людей решили? Или может быть ещё где то можно посмотреть решения других?
Александр Уровень 19 Expert
15 февраля 2025
если решать через PyCharm, он пишет в результатах количество человек решивших задачу на данный момент.
euphor1a Уровень 43
20 мая 2025
Примерно так же сделал:

x = set(input("").split(" "))
y = set(input("").split(" "))

print(x | y)
print(x & y)
Slevin Уровень 1
25 июня 2025
простого

x = set(input("text: ")) 
достаточно
Tania Solovei Уровень 64
23 сентября 2025
за редким исключением все задачи легко идут, но до этого на плюсах писала, это сильно в помощь, но думаю было б сложновато с курсом, если б была совсем новиком-новичком
Denis Уровень 2
12 января 2025
"но как говориться хозяин — барин" - говорится без мягкого знака пишется