Пусть fs = frozenset([1, 2, 3]). Что произойдёт при вызове fs.add(4)?
AМетод
.add(4) сработает: frozenset поддерживает добавление элементов как обычный setBБудет
AttributeError: у frozenset нет метода .add(), объект неизменяемыйCМетод
.add(4) молча вернёт None: ничего не изменится, исключения тоже не будетDЭлемент добавится: при изменении
frozenset автоматически становится обычным setПравильный ответ.
frozenset — неизменяемая версия множества, которая не поддерживает методы изменения и поднимает AttributeError при попытке вызвать .add().Разбор
frozenset отличается от set тем, что его нельзя изменить после создания: у него нет методов add(), remove(), discard() и update(). Поэтому вызов fs.add(4) поднимает AttributeError: 'frozenset' object has no attribute 'add'. Зато именно из-за неизменяемости и хэшируемости frozenset можно использовать как ключ словаря или элемент другого множества — обычный set для этого не годится. Чтобы «добавить» элемент, создают новое множество: fs | {4}.
Проверь себя · 1/3разбор после ответа
Что вернёт выражение
"b" in ["a", "b", "c"]?Ещё вопросы по теме «Синтаксис и типы данных»
- Какой результат вернёт вызов `type(10)`?
- После выполнения `y = str(42)` чему равен `y` и какой у него тип?
- Какая проверка наиболее корректна и идиоматична, чтобы убедиться, что переменная `x` равна `None`?
- Чему равно значение переменной `result` после выполнения строки `result = 3 < 5`?
- Что вернёт выражение `" Python ".strip()`?
- Все вопросы по «Синтаксис и типы данных» →