Вопрос проверяет понимание работы ссылок и вложенных структур.
Поверхностное копирование создает новый контейнер, но вложенные объекты остаются теми же. Глубокое копирование копирует все вложенные объекты рекурсивно. При изменении вложенных элементов в shallow copy изменения могут затронуть оригинал. Deep copy полностью изолирован.
Определение:
Поверхностная копия создает новый объект верхнего уровня, но вложенные элементы остаются ссылками.
Пример:
import copy
data = [[1, 2], [3, 4]]
shallow = copy.copy(data)
shallow[0][0] = 100
print(data) # изменится
Изменился вложенный список.
Определение:
Глубокая копия рекурсивно копирует все вложенные объекты.
Пример:
deep = copy.deepcopy(data)
deep[0][0] = 500
print(data) # не изменится
Когда структура простая
Когда вложенные объекты неизменяемые
Когда важна производительность
Вложенные структуры
Работа с конфигурациями
Обработка данных
Shallow copy копирует структуру, deep copy копирует структуру и содержимое, обеспечивая полную независимость объектов.