38. Как сделать копию объекта? Как сделать глубокую копию объекта?
(прошу прощения, пост #37 задвоился из-за непонятной задержки Pikabu Publish Bot - пытаюсь это исправить!)
Типа копий бывает два: обычная-неглубокая (shallow) и глубокая (deep).
Разница между мелким и глубоким копированием актуальна только для составных объектов (объектов, содержащих другие объекты, такие как списки или экземпляры классов).:
- Неглубокая копия создает новый составной объект, а затем (насколько это возможно) вставляет в него ссылки на объекты, найденные в оригинале.
- Глубокая копия создает новый составной объект, а затем рекурсивно вставляет в него копии объектов, найденных в оригинале.
Ответ:
from copy import copy, deepcopy
a = [1,2,3,4,5,6]
my_copy = copy(a)
my_deep_copy = deepcopy(a)
>>> id(a)
140384823640320
>>> id(my_copy)
140384823640448
>>> id(my_deep_copy)
140384823572544
#сериал101, #38
Это кросспост из моего Telegram-канала "Не Ван Россум", где я прямо сейчас пишу сериал "101 вопрос про Python" с описанием подводных камней, неочевидностей и загвоздок.