Поверхностное копирование создаёт новый объект, но копирует только ссылки на вложенные объекты, а глубокое копирование создаёт рекурсивную копию всех объектов, включая вложенные. Это важно при работе с изменяемыми структурами данных.
➡️ Пример:
import copy
original = [[1, 2, 3], [4, 5, 6]]
shallow = copy.copy(original)
deep = copy.deepcopy(original)
original[0][0] = 99
print(shallow) # [[99, 2, 3], [4, 5, 6]]
print(deep) # [[1, 2, 3], [4, 5, 6]]
🗣️ Используйте deepcopy, когда вам нужно полностью изолировать изменения от оригинального объекта.
🖥 Подробнее тут