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