Олег Марков
Множества в Python
Введение
Множества (set) в Python представляют собой неупорядоченные коллекции уникальных элементов. Они позволяют эффективно работать с уникальными значениями, проверять принадлежность, объединять, пересекать и удалять элементы.
Множества отличаются от списков и кортежей отсутствием индексации и невозможностью хранить дубликаты. Эти свойства делают их полезными для решения задач, где важна уникальность данных, например, при обработке данных, работе с пользователями или набором тегов. В этой статье мы разберемся, как создавать множества, работать с ними и использовать встроенные методы.
Если вы хотите глубже освоить структуры данных Python и изучить работу с множествами, списками, кортежами и словарями — приходите на наш курс Основы Python. На курсе 209 уроков и 34 упражнения, AI-тренажеры для практики с кодом и задачами 24/7, решение задач с живым ревью наставника, еженедельные встречи с менторами. Вы получите системное понимание работы с множествами и другими коллекциями Python.
Создание множеств
Множества создаются с помощью функции set() или фигурных скобок {}:
# Пустое множество
s1 = set()
# Множество с элементами
s2 = {1, 2, 3, 4}
# Из списка
s3 = set([1, 2, 2, 3])
print(s3) # {1, 2, 3}, дубликаты удаленыОсобенности:
- Пустое множество создается только через
set(),{}создаст пустой словарь. - Элементы множества должны быть неизменяемыми (числа, строки, кортежи).
Проверка наличия элемента
Множества поддерживают быструю проверку вхождения:
fruits = {"apple", "banana", "cherry"}
print("apple" in fruits) # True
print("orange" in fruits) # FalseОсновные методы множеств
Множества имеют богатый набор методов для работы с уникальными элементами:
s = {1, 2, 3}
# Добавление элемента
s.add(4)
# Удаление элемента
s.remove(2) # KeyError если нет элемента
s.discard(5) # не вызывает ошибку
# Извлечение произвольного элемента
elem = s.pop()
# Очистка множества
s.clear()Операции над множествами
Множества поддерживают стандартные операции теории множеств:
a = {1, 2, 3, 4}
b = {3, 4, 5, 6}
print(a | b) # объединение → {1,2,3,4,5,6}
print(a & b) # пересечение → {3,4}
print(a - b) # разность → {1,2}
print(a ^ b) # симметрическая разность → {1,2,5,6}Перебор элементов
Так как множества неупорядочены, перебор производится циклом for:
for item in {"apple", "banana", "cherry"}:
print(item)Для сортировки элементов можно использовать sorted():
s = {5, 2, 9, 1}
for item in sorted(s):
print(item)Частые ошибки при работе с множествами
- Использование изменяемых элементов (списков, словарей) в множестве →
TypeError. - Попытка обратиться к элементу по индексу → невозможно, множества не индексируются.
- Использование методов списков (
append,insert) → недоступны.
Часто задаваемые вопросы
Можно ли объединять множества с другими коллекциями? Да, через
set()можно преобразовать списки или кортежи и использовать операции объединения.Как проверить подмножество?
a = {1, 2, 3}
b = {1, 2, 3, 4}
print(a <= b) # True- Как создать множество из строки?
s = set("hello")
print(s) # {'h', 'e', 'l', 'o'}- Можно ли изменять элементы множества? Нет, элементы должны быть неизменяемыми типами (числа, строки, кортежи).
Заключение
Множества в Python — эффективный инструмент для работы с уникальными элементами. Они поддерживают операции объединения, пересечения и разности, позволяют проверять вхождение и исключать дубликаты. Понимание работы с множествами помогает организовывать данные более эффективно и безопасно.
Для системного изучения работы с множествами, списками, кортежами и другими коллекциями Python рекомендую пройти курс Основы Python. В первых 3 модулях уже доступно бесплатное содержание — начните погружаться в мир Python прямо сегодня.
Постройте личный план изучения Python до уровня Middle — бесплатно!
Python — часть карты развития Backend
100+ шагов развития
30 бесплатных лекций
300 бонусных рублей на счет
Все гайды по Python
Лучшие курсы по теме

Основы Python
Антон Ларичев
Nest.js с нуля
Антон Ларичев