Программирование • 12 августа 2026 • 5 мин чтения

Множества в Python: вводный гайд для начинающих

Разбираем, зачем нужны множества в Python, как их создавать и как с ними работать.

Что такое множества в Python

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

Множества изучают на курсе «Python-разработчик». На нём вы за 10 месяцев освоите IT‑профессию с нуля, получите реальный опыт и навыки, которые нужны работодателям.

Зачем использовать множества

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

  • Убрать повторяющиеся слова из текста;
  • Найти общих друзей у двух пользователей в социальной сети;
  • Проверить, есть ли запрещённое слово в сообщении;
  • Собрать уникальные теги из всех постов блога.

Множества особенно полезны в задачах, где важна уникальность и скорость: например, при обработке больших логов или при проверке прав доступа. Они экономят время и делают код более читаемым.

Как создать множество в Python

Создать множество можно двумя способами. Самый простой — перечислить элементы в фигурных скобках через запятую. Если передать список в функцию set (), она вернёт множество без дубликатов.

python

# Способ 1 — фигурные скобки
colors = {"красный", "синий", "зелёный"}

# Способ 2 — из списка
numbers = set([1, 2, 3, 2, 1]) # получится {1, 2, 3}

Пустое множество создаётся только через set (), потому что фигурные скобки {} создают пустой словарь, а не множество.

python

empty_set = set() # правильно
not_a_set = {} # это словарь

На практике чаще используют создание множества из существующих данных — например, когда нужно удалить дубли из списка или из строки. Для пустого множества привыкайте использовать set(), чтобы случайно не создать словарь.

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

С множествами можно выполнять операции, знакомые из школьной математики. Они работают быстро даже на больших объёмах данных. Вот основные операции:

  • Объединение (union) — собирает все элементы из двух множеств. Оператор | или метод union ().
  • Пересечение (intersection) — оставляет только общие элементы. Оператор & или метод intersection ().
  • Разность (difference) — элементы первого множества без элементов второго. Оператор — или метод difference ().
  • Симметрическая разность (symmetric_difference) — элементы, которые есть только в одном из множеств. Оператор ^ или метод symmetric_difference ().

python

a = {1, 2, 3}
b = {3, 4, 5}

print(a | b) # {1, 2, 3, 4, 5}
print(a & b) # {3}
print(a - b) # {1, 2}
print(a ^ b) # {1, 2, 4, 5}

Проверить, является ли одно множество подмножеством другого, можно через оператор ≤ или метод issubset (). Эти операции часто используют при проверке прав доступа или при сравнении наборов данных в аналитике.

Методы множества в Python

У множеств есть встроенные методы для добавления, удаления и проверки элементов. Они делают работу с множествами гибкой и удобной. Вот эти методы:

  • add(x) — добавляет элемент x в множество.
  • remove(x) — удаляет элемент x, если он есть. Если элемента нет — вызывает ошибку.
  • discard(x) — удаляет элемент x, если он есть. Если элемента нет — ничего не делает.
  • pop() — удаляет и возвращает случайный элемент.
  • clear() — удаляет все элементы из множества.
  • copy() — создаёт копию множества.

При работе с методами важно помнить, что порядок элементов в множестве не гарантирован. Поэтому pop() возвращает случайный элемент, а не первый. Если нужно безопасно удалить элемент без проверки, используйте discard вместо remove.

Чем множества отличаются от списков и словарей

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

Выбирайте структуру данных в зависимости от задачи. Если нужен порядок и доступ по индексу — используйте список. Если нужны уникальные ключи со значениями — словарь. Если важна уникальность элементов и быстрая проверка наличия — множество.

Множества изучают на курсе «Python-разработчик». На нём вы за 10 месяцев освоите IT‑профессию с нуля, получите реальный опыт и навыки, которые нужны работодателям.

Типичные ошибки начинающих при работе с множествами

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

  • Путают {} и set (). {} создаёт пустой словарь, а set () — пустое множество. Чтобы создать пустое множество, всегда используйте set ().
  • Пытаются добавить изменяемый элемент. В множество нельзя добавить список или словарь. Используйте кортежи вместо списков, если нужно сохранить последовательность.
  • Ожидают сохранения порядка. Множества не сохраняют порядок элементов. Не полагайтесь на то, что элементы останутся в том же порядке, в котором вы их добавили.
  • Используют множества для доступа по индексу. По элементам множества нельзя итерироваться с индексом, как по списку. Используйте списки, если нужен доступ по порядковому номеру.

Помимо этого, новички могут не учитывать, что remove вызывает ошибку. remove (x) вызовет KeyError, если элемента нет. Используйте discard (x), если не уверены в наличии элемента.

Статью подготовили:
Андрей Пронин
ProninTeam
Наставник курса «Инструменты начинающего руководителя» и спикер вебинаров «Управление командой разработки» и «Управление проектами»
Валентина Бокова
Яндекс Практикум
Редактор
Анастасия Павлова
Яндекс Практикум
Иллюстратор

Подпишитесь на наш ежемесячный дайджест статей —
а мы подарим вам полезную книгу про обучение!

Поделиться
Однородный зелёный фон
Как ИИ поменяет вашу профессию - пройдите наш бесплатный тест, получите персональные рекомендации и промокод на скидку