Junior — Middle
96
Объясните, что такое поверхностное копирование объектов в Python и чем оно отличается от глубокого копирования.
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Поверхностное копирование (shallow copy) в Python создает новый объект, но вложенные объекты внутри него не копируются, а просто копируются ссылки на них. То есть, если внутри объекта есть изменяемые вложенные структуры (например, списки, словари), то они будут общими для оригинала и копии.
Глубокое копирование (deep copy) создает новый объект и рекурсивно копирует все вложенные объекты, создавая полностью независимую копию.
Пример:
import copy
original = [1, [2, 3]]
shallow = copy.copy(original)
deep = copy.deepcopy(original)
shallow[1].append(4)
print(original) # Выведет: [1, [2, 3, 4]] — вложенный список изменился и в оригинале
print(deep) # Выведет: [1, [2, 3]] — глубокая копия не изменилась
Таким образом, поверхностное копирование подходит, когда вложенные объекты не изменяются, а глубокое — когда нужна полная независимость копии от оригинала.