Вопрос №4
Осталось:
Чем отличаются set и frozenset?
Образцовый ответ
Показывать ответ по умолчанию
set (множество):
- Изменяемая неупорядоченная коллекция уникальных элементов.
- Поддерживает добавление и удаление элементов.
- Не может быть ключом словаря или элементом другого множества.
colors = {"красный", "зелёный", "синий"} colors.add("жёлтый") colors.discard("красный")
frozenset (замороженное множество):
- Неизменяемая версия множества.
- Не поддерживает добавление и удаление элементов.
- Является хешируемым — может быть ключом словаря.
immutable_set = frozenset([1, 2, 3]) # immutable_set.add(4) # AttributeError # frozenset как ключ словаря cache = {frozenset([1, 2]): "результат"}
Общие операции над множествами:
a = {1, 2, 3, 4} b = {3, 4, 5, 6} a | b # Объединение: {1, 2, 3, 4, 5, 6} a & b # Пересечение: {3, 4} a - b # Разность: {1, 2} a ^ b # Симметрическая разность: {1, 2, 5, 6}
На практике:
set используется для быстрого удаления дубликатов и проверки принадлежности (in за O(1)). frozenset нужен, когда множество должно быть ключом словаря или элементом другого множества.
