Поверхностное копирование и глубокое копирование — это две стратегии дублирования объектов в Python, и они различаются тем, как обрабатывают вложенные объекты.
Поверхностная копия, созданная с помощью copy.copy(), создаёт новый объект, но не дублирует вложенные объекты рекурсивно. Вместо этого она копирует ссылки на те же вложенные объекты из исходного.
import copy
original = [[1, 2], [3, 4]]
shallow = copy.copy(original)
shallow[0][0] = 99 # Также изменяет original[0][0]
Глубокая копия, созданная с помощью copy.deepcopy(), рекурсивно дублирует все вложенные объекты, создавая полностью независимый клон исходного.
deep = copy.deepcopy(original)
deep[0][0] = 99 # НЕ влияет на исходный
copy.copy(), когда твой объект не содержит вложенных изменяемых объектов, или когда общие ссылки на вложенные объекты допустимы — это быстрее и экономнее по памятиcopy.deepcopy(), когда нужна полностью независимая копия, особенно при работе со сложными или глубоко вложенными структурами данныхПоверхностная копия, созданная с помощью copy.copy(), производит новый внешний объект, но вложенные изменяемые объекты остаются общими ссылками между оригиналом и копией.
Новый — ещё не проверен сообществом
Вы