import copy

Будет выведено [[100], [2], [3]]. Поверхностная копия создала новый внешний список, но сохранила ссылки на прежние вложенные списки.

Короткий ответ

Что ответить на собеседовании

Будет выведено [[100], [2], [3]]. Поверхностная копия создала новый внешний список, но сохранила ссылки на прежние вложенные списки.

Подробный разбор

Ответ с пояснениями

Условие

import copy a = [[1],[2],[3]] b = copy.copy(a) a.append([4]) a[0][0] = 100 print(b)

Ответ

Будет выведено [[100], [2], [3]]. Поверхностная копия создала новый внешний список, но сохранила ссылки на прежние вложенные списки.

a.append([4]) меняет только внешний список a, поэтому четвёртый элемент не появляется в b. Присваивание a[0][0] = 100 изменяет общий вложенный список, доступный и через b[0].

Это отличается от замены a[0] целиком: новая ссылка в a не заменила бы соответствующую ссылку в b. Для независимых вложенных структур часто используют deepcopy, учитывая его стоимость и особое поведение пользовательских объектов. В данном примере никакого глубокого копирования не происходит.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее