Этот вопрос проверяет знание механизма создания поверхностной копии объекта, которая не является полностью независимой.
Поверхностная копия создаёт новый объект, но не копирует вложенные структуры данных. Вместо этого она сохраняет ссылки на них. Изменения во вложенных объектах повлияют как на копию, так и на оригинал.
Поверхностная копия создаётся с помощью метода .copy() или функции copy.copy() из модуля copy. При этом копируется только сам объект, а ссылки на вложенные объекты остаются теми же.
Пример:
import copy
original = [[1, 2, 3], [4, 5, 6]]
shallow_copied = copy.copy(original)
shallow_copied[0][0] = 99
print(original) # [[99, 2, 3], [4, 5, 6]] (оригинал изменился)
print(shallow_copied) # [[99, 2, 3], [4, 5, 6]]Отличие от глубокой копии:
Глубокая копия: полностью независимая.
Поверхностная копия: вложенные объекты остаются связанными.
Когда использовать:
Для копирования простых объектов или объектов, которые не содержат вложенных изменяемых структур.