Sobes.tech
Middle+

Разкажи ми за модула copy в Python. Каква е разликата между copy и deepcopy?

sobes.tech AI

Отговор от AI

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

  • copy.copy(obj) — повърхностно копиране.
  • copy.deepcopy(obj) — дълбоко копиране.

Разлика между copy и deepcopy:

  • Повърхностното копиране създава нов обект, но вложените обекти вътре в него не се копират, а просто се препратки към същите обекти като в оригинала.
  • Дълбокото копиране рекурсивно копира всички вложени обекти, създавайки напълно независима копие.

Пример:

import copy

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

original[1][0] = 'променено'

print(shallow)  # [1, ['променено', 3]] — вложеният списък се промени
print(deep)     # [1, [2, 3]] — дълбоката копия не се промени