Вопрос сравнивает поверхностное и глубокое копирование объектов в Python.
Shallow copy создаёт новый объект, но копирует ссылки на вложенные элементы.
Deep copy рекурсивно копирует все вложенные объекты. Изменения в копии не затрагивают оригинал.
1. Shallow copy:
Реализуется через copy.copy() или list.copy().
Вложенные изменяемые объекты остаются общими.
Пример:
import copy
lst1 = [1, [2, 3]]
lst2 = copy.copy(lst1)
lst2[0] = 10 # Не влияет на lst1
lst2[1][0] = 20 # Меняет lst1[1][0]
print(lst1) # [1, [20, 3]]2. Deep copy:
Реализуется через copy.deepcopy().
Полностью независимая копия.
lst3 = copy.deepcopy(lst1)
lst3[1][0] = 30 # Не влияет на lst1Когда использовать:
Shallow: если вложенные объекты неизменяемы.
Deep: для полного клонирования сложных структур.
Вывод:Deep copy безопаснее, но требует больше ресурсов.