Sobes.tech
Junior — Middle
99

Python-da shallow və deep kopyalama funksiyaları arasındakı fərq nədir?

Şirkətlər soruşuldu
Notamedia
Баланс-ПлатформаБаланс-Платформа

AI-dan cavab

sobes.tech Süni İntellekt

В Python функции копирования делятся на поверхностное (shallow) и глубокое (deep) копирование.

Поверхностное копирование (shallow copy) создает новый объект, но вложенные объекты внутри него не копируются, а лишь копируются ссылки на них. То есть, если внутри объекта есть изменяемые элементы (например, списки, словари), то изменения в них отразятся и в копии.

Глубокое копирование (deep copy) создает новый объект и рекурсивно копирует все вложенные объекты, таким образом копия полностью независима от оригинала.

Пример:

import copy

original = [1, [2, 3], 4]
shallow = copy.copy(original)
deep = copy.deepcopy(original)

shallow[1].append(5)
print(original)  # [1, [2, 3, 5], 4] - изменился вложенный список
print(shallow)   # [1, [2, 3, 5], 4]
print(deep)      # [1, [2, 3], 4] - глубокая копия не изменилась

Таким образом, shallow copy быстрее, но может привести к неожиданным изменениям вложенных объектов, deep copy безопаснее, но затратнее по ресурсам.