Что такое глубокая копия

Создает новый полностью независимый объект.

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