Python для новичковКоллекцииМножество: создание и проверка принадлежности

Множество: создание и проверка принадлежности

Уроки курсаМножество: создание и проверка принадлежности

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

Что такое множество и зачем оно нужно

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

Множество (тип 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. Всё остальное в уроке строится вокруг этой идеи.