Множества изучают на курсе «Python-разработчик». На нём вы за 10 месяцев освоите IT‑профессию с нуля, получите реальный опыт и навыки, которые нужны работодателям.
Множества решают несколько задач. Они удаляют дубликаты из данных, проверяют принадлежность элемента и выполняют операции сравнения между группами значений. В отличие от списков, множества работают намного быстрее при проверке наличия элемента. Вот некоторые ситуации, когда используют множества:
Множества особенно полезны в задачах, где важна уникальность и скорость: например, при обработке больших логов или при проверке прав доступа. Они экономят время и делают код более читаемым.
python
# Способ 1 — фигурные скобки
colors = {"красный", "синий", "зелёный"}
# Способ 2 — из списка
numbers = set([1, 2, 3, 2, 1]) # получится {1, 2, 3}
Пустое множество создаётся только через set (), потому что фигурные скобки {} создают пустой словарь, а не множество.
python
empty_set = set() # правильно
not_a_set = {} # это словарь
На практике чаще используют создание множества из существующих данных — например, когда нужно удалить дубли из списка или из строки. Для пустого множества привыкайте использовать set(), чтобы случайно не создать словарь.
С множествами можно выполнять операции, знакомые из школьной математики. Они работают быстро даже на больших объёмах данных. Вот основные операции:
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 (). Эти операции часто используют при проверке прав доступа или при сравнении наборов данных в аналитике.
У множеств есть встроенные методы для добавления, удаления и проверки элементов. Они делают работу с множествами гибкой и удобной. Вот эти методы:
При работе с методами важно помнить, что порядок элементов в множестве не гарантирован. Поэтому pop() возвращает случайный элемент, а не первый. Если нужно безопасно удалить элемент без проверки, используйте discard вместо remove.
В списке могут быть дубли, а в множестве — нет. Также множество, в отличие от списка, не сохраняет порядок добавления элементов. От словаря множество отличается отсутствием пар ключ — значение. В множестве хранятся только значения, у которых нет привязанного дополнительного данного. В остальном множество похоже на словарь без значений.
Новички часто путают множества с другими структурами данных. Перечислим самые распространённые ошибки и способы их избежать.
Помимо этого, новички могут не учитывать, что remove вызывает ошибку. remove (x) вызовет KeyError, если элемента нет. Используйте discard (x), если не уверены в наличии элемента.
Читать также: