Короткий ответ
Множество — неупорядоченная коллекция уникальных элементов для быстрой проверки вхождения. Словарь — коллекция пар «ключ — значение», дающая быстрый доступ к значению по уникальному ключу и сохраняющая порядок вставки.
Как это работает подробнее
Структуры похожи синтаксически, но решают разные задачи.
- Создание. Множество задаётся фигурными скобками или функцией
set(), словарь — фигурными скобками с парами «ключ: значение». - Пустые скобки. Пустые фигурные скобки
{}создают словарь, а не множество: пустое множество создаётся только вызовомset(). - Хеш-таблицы. Обе структуры построены на хешировании: у множества хешируются сами элементы, у словаря — ключи, что и обеспечивает высокую скорость поиска.
Что использовать на практике
- Проверка вхождения. Когда нужно узнать, есть ли элемент в коллекции, и исключить дубликаты, используй множество.
- Соответствие данных. Когда нужно быстро получить значение по ключу, например по идентификатору пользователя, используй словарь.
- Операции над множествами. Для объединения, пересечения и разности коллекций применяй операции множеств.
Подводные камни
- Пустое множество. Запись
{}создаёт пустой словарь, а не множество, — это частая ошибка новичков. - Отсутствие порядка. Множество не сохраняет порядок элементов, поэтому не подходит для упорядоченных данных.
- Уникальность. В словаре уникальны ключи, а в множестве — сами элементы; дубликаты при вставке молча отбрасываются.