Sobes.tech
Back to questions
Middle+
10

Расскажите про модуль copy в Python. В чём разница между copy и deepcopy?

Companies where asked
YadroYadro

Answer from AI

sobes.tech AI

Модуль copy в Python предоставляет функции для создания копий объектов. Основные функции:

  • copy.copy(obj) — поверхностное копирование (shallow copy).
  • copy.deepcopy(obj) — глубокое копирование (deep copy).

Разница между copy и deepcopy:

  • Поверхностное копирование создает новый объект, но вложенные объекты внутри него не копируются, а просто ссылаются на те же объекты, что и в оригинале.
  • Глубокое копирование рекурсивно копирует все вложенные объекты, создавая полностью независимую копию.

Пример:

import copy

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

original[1][0] = 'changed'

print(shallow)  # [1, ['changed', 3]] — вложенный список изменился
print(deep)     # [1, [2, 3]] — глубокая копия не изменилась