Множество: создание и проверка принадлежности
Уроки курсаМножество: создание и проверка принадлежности
В прошлых уроках мы разобрали списки и словари. Список хранит элементы в порядке и допускает дубликаты, а словарь хранит пары ключ–значение. Сегодня познакомимся с новой коллекцией — множеством. Оно решает конкретную задачу: хранить только уникальные значения, не заботясь о порядке.
Что такое множество и зачем оно нужно
Представь, что ты собираешь список городов, которые посетили пользователи. Один и тот же пользователь может прислать «Москва» трижды. Если хранить города в обычном списке, дубликаты накапливаются. Множество решает это автоматически: оно просто не даёт одному и тому же значению попасть внутрь дважды.
Множество (тип set) — это встроенная коллекция Python, которая хранит только уникальные элементы. Два ключевых свойства отличают его от списка:
- Нет дубликатов. Если добавить одно и то же значение несколько раз, в множестве оно будет ровно один раз.
- Нет порядка. Множество не запоминает, в каком порядке добавлялись элементы. Поэтому к элементам нельзя обратиться по индексу — конструкция
s[0]вызовет ошибку.
Сравни со списком:
cities_list = ["Москва", "Питер", "Москва", "Казань", "Питер"]
print(cities_list) # ['Москва', 'Питер', 'Москва', 'Казань', 'Питер']
print(len(cities_list)) # 5 — все пять, включая дубли
Тот же набор данных, но через множество:
cities_set = {"Москва", "Питер", "Москва", "Казань", "Питер"}
print(cities_set) # {'Москва', 'Питер', 'Казань'} — порядок произвольный
print(len(cities_set)) # 3 — только уникальные
Порядок вывода может меняться от запуска к запуску — это нормально. Множество не обязано выдавать элементы в том же порядке, в котором они были переданы.
Когда множество уместно, а когда нет:
- Нужно хранить уникальные значения и быстро проверять, есть ли что-то в коллекции — множество подходит.
- Нужно хранить порядок, дубликаты или обращаться к элементам по позиции — нужен список.
Свойство уникальности — не просто техническая деталь, а главная причина, зачем вообще использовать set. Всё остальное в уроке строится вокруг этой идеи.
