Чем отличаются словари (dict) и множества (set) в Python

Ответ

Словари (dict) и множества (set) — это встроенные коллекции в Python, основанные на хэш-таблицах, но они служат разным целям и имеют разную структуру.

Основное различие:

  • dict хранит пары ключ-значение. Каждый ключ должен быть уникальным и хешируемым.
  • set хранит только уникальные хешируемые элементы.

Сравнительная таблица

Аспект dict (Словарь) set (Множество)
Структура Пары ключ: значение Только уникальные элементы
Назначение Сопоставление ключей со значениями Хранение уникальных элементов, математические операции
Синтаксис {'a': 1, 'b': 2} {1, 2, 3}
Доступ По ключу: my_dict['a'] Только проверка вхождения: 1 in my_set
Порядок Сохраняется порядок вставки (Python 3.7+) Не гарантируется

Практические примеры

Словарь (dict) используется, когда нужно связать данные.

# Создание и использование словаря
user_profile = {
    "username": "alex",
    "level": 15,
    "is_active": True
}

# Доступ к значению по ключу
print(f"Уровень пользователя: {user_profile['level']}") # -> Уровень пользователя: 15

Множество (set) идеально подходит для удаления дубликатов и проверки принадлежности.

# Создание множества из списка с дубликатами
ids = [101, 102, 105, 102, 103, 101]
unique_ids = set(ids)

print(unique_ids) # -> {101, 102, 103, 105} (порядок не гарантирован)

# Быстрая проверка вхождения
if 102 in unique_ids:
    print("ID 102 найден.") # -> ID 102 найден.

Когда что использовать?

  • Используйте dict, когда у вас есть данные, которые нужно структурировать и получать по уникальному идентификатору (ключу).
  • Используйте set, когда вам нужно хранить коллекцию уникальных элементов и быстро проверять, есть ли элемент в коллекции, или выполнять операции пересечения/объединения.