Что такое поверхностная копия
Копирует объект на 1 уровень в глубину, но заполняет его ссылками на дочерние объекты. А изменения в оригинале так же будут отображаться в копии.
import copy
some_list = [[1, 2], [1, 2], 100000]
new_list = copy.copy(some_list)
some_list[1][0] = 'one'
some_list[2] = 'change'
print(some_list) # [[1, 2], ['one', 2], 'change']
print(new_list) # [[1, 2], ['one', 2], 100000]
# Поверхностную копию можно сделать через модуль копи
# или через встроенный метод copy()
new_list = some_list.copy()
# или через встроенную функцию присваивания
new_list = list(some_list)
Oct. 10, 2023, Источник
Поверхностная копия (shallow copy) — это создание копии объекта, но только самого верхнего уровня его структуры данных. В отличие от глубокой копии, поверхностная копия не копирует вложенные объекты, а только ссылается на них. Это означает, что если изменить вложенный объект в исходном объекте, то эти изменения будут отражены и в его копии, так как оба объекта будут ссылаться на одни и те же вложенные объекты.
Для создания данной копии можно использовать модуль `copy` и его функцию `copy`. Пример:
import copy
original_list = [1, [2, 3], 4]
copied_list = copy.copy(original_list)
original_list[1][0] = 5 # Изменение исходного списка
print(original_list) # Вывод: [1, [5, 3], 4]
print(copied_list) # Вывод: [1, [5, 3], 4]
В этом примере `copy` создает поверхностную копию `original_list` в `copied_list`. При изменении значения элемента вложенного списка в `original_list`, эти изменения также отражаются в `copied_list`, так как оба объекта ссылаются на один и тот же вложенный список `[2, 3]`.
Feb. 19, 2024, easyoffer