Дан код:\n``python\na = {1, 2, 3}\nb = a.copy()\na.add(4)\n`\nЧто будет в b`?

AОба множества изменятся: и в a, и в b появится элемент 4 после вызова add
BТолько в b добавится 4, а множество a останется неизменным {1, 2, 3}
CТолько в a добавится 4, а множество b останется прежним {1, 2, 3}
DБудет ошибка AttributeError: у set нет метода .copy() для копирования множества
Правильный ответ. .copy() у set создаёт независимую поверхностную копию, поэтому изменения одного множества не влияют на другое.

Разбор

Вызов a.copy() создаёт новый объект set с теми же элементами. Поскольку элементы множества — неизменяемые значения (числа), a.add(4) затронет только a. Множество b останется {1, 2, 3}. Для множеств, содержащих только примитивы, поверхностная копия фактически эквивалентна глубокой.

Проверь себя · 1/3разбор после ответа
Есть словарь config = {'timeout': 10, 'retries': 3}. Что произойдёт при вызове config.pop('timeout', None)?
Тренировать Python в Telegram

Ещё вопросы по теме «Коллекции и структуры данных»