Ответ
Словари (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
, когда вам нужно хранить коллекцию уникальных элементов и быстро проверять, есть ли элемент в коллекции, или выполнять операции пересечения/объединения.