Codebra
29 января 2026 в 18:32

Урок 27. Множества в Python

Как создать множество в Python. Какие методы необходимо знать.
📝

Внимание! На этой странице вы найдете материал урока из архивного курса по Python. Курс был написан в 2024 году и по-прежнему актуален для начинающих разработчиков.

Теоретический материал сохранен в исходном виде, а практические задания с автоматической проверкой вынесены в отдельные интенсивы и задания.

Полный список уроков доступен по тегу Архивный курс по Python и на странице первого урока.

📝 Кратко
  • Множества в Python - структура данных, похожая на множества из школьной математики.
  • Главная особенность множеств - автоматическое удаление одинаковых значений.
  • Множества могут упростить код на Python, например, при поиске уникальных значений в списке.
  • В Python множества легко узнать по запятой и фигурным скобкам.
  • Множество можно создать с помощью функции set() или конструктора множества.
  • Методы множеств: объединение, разность и пересечение.
  • Объединение множества и слова: метод union().
  • Разность множеств: метод difference().
  • Пересечение множеств: метод intersection().

В предыдущем уроке мы познакомились с методами словарей Python. Да, списки и словари позволяют решить большую часть задач, но этих структур недостаточно. В этом уроке рассмотрим множества, которые могут значительно упростить код на Python.

В Python множество – структура данных, которая очень похожа на множества из школьной математики. Главная особенность множества – автоматическое удаление одинаковых значений.

Предположим, у вас есть длинный список продуктов для покупки. Он настолько длинный, что некоторые продукты были написаны несколько раз. Чтобы оставить в нем только уникальные наименования, достаточно этот список преобразовать во множество. Далее пример:

numbers = {1, 3, 2, 5}

Множества в исходном коде Python легко узнать: объекты отделены между собой запятой и помещены внутрь фигурных скобок. Словари тоже обрамлены фигурными скобками, но объекты в них делятся на ключи и значения, между которым ставится знак двоеточие (:).

Помните, как мы искали гласные буквы, которые попадаются в тексте в уроке про списки? Вот он:

letters = ["а", "е", "и", "о", "у", "э", "ю", "я"]
word = "список – это массив"
found = []

for item in word:
    if item in letters:
        if item not in found:
            found.append(item)

for item in found:       
    print(item)

Уже скоро мы его упростим. А пока будем плавно подходить к этому. Создадим простое множество из букв и выведем его:

letters = {"а", "а", "о", "е", "е", "е"}
print(letters)

В результате вы увидите только три уникальные буквы. Аналогично, множество можно создать следующим образом:

letters = set("ааоеее")
print(letters) # => {'а', 'о', 'е'}

Итак, буквы во множество добавили. Теперь необходимо выяснить, есть ли в словах буквы из нашего множества. Казалось бы логично использовать цикл for и оператор in, но лучше раскроем для себя новые полезные методы, присущие множествам: объединение, разность и пересечение. Давайте объединим множество наших трех букв и какого-нибудь слова:

letters = set("ааоеее")
word = "Привет"
result = letters.union(set(word))

Обратите внимание, что перед объединением, слово в переменной word было преобразовано во множество.

Теперь найдем отличие одного множества от другого. Для этого существует метод difference:

letters = set("ааоеее")
word = "Привет"
result = letters.difference(set(word)) # => {'а', 'о'}

В возвращенном множестве содержатся две буквы, которые были в первом, но отсутствовали во втором.

И наконец, найдем пересечение или, другими словами, общие объекты. Именно этот метод поможет решить задачу с поиском букв из множества в заданном слове.

letters = set("ааоеее")  
word = "Привет"  
result = letters.intersection(set(word)) # => {'е'}

Теперь вы легко сможете решить ранее рассмотренную задачу буквально в две строки.

Подведем итог. Множества позволяют существенно упростить некоторые классы задач. Несмотря на это, не стоит сбрасывать со счетов другие структуры – у каждой свои плюсы. В этом уроке мы также рассмотрели методы присущие множествам: объединение, разность и пересечение.

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

📝

Переходите к следующему уроку курса, а так же не забудьте посмотреть новый материал на Codebra по тегу Python.