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]] — дълбоката копия не се промени