Курс Python → Глубокое копирование объектов

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

Для выполнения глубокого копирования в Python можно использовать модуль copy и его метод deepcopy. Этот метод рекурсивно копирует все объекты, на которые ссылается исходный объект, в новую копию. Таким образом, изменения, внесенные в новую копию, не повлияют на оригинал.


import copy

original_list = [1, 2, [3, 4]]
deep_copy_list = copy.deepcopy(original_list)

deep_copy_list[2].append(5)

print(original_list)  # Output: [1, 2, [3, 4]]
print(deep_copy_list)  # Output: [1, 2, [3, 4, 5]]

В приведенном примере создается глубокая копия списка original_list с вложенным списком. После добавления элемента во вложенный список новая копия (deep_copy_list) отличается от оригинала (original_list), что подтверждает успешное выполнение глубокого копирования.

Глубокое копирование важно при работе с составными объектами, чтобы избежать неожиданных изменений в оригинале при модификации копии. Этот подход обеспечивает безопасность данных и предотвращает ошибки, связанные с переиспользованием ссылок на объекты.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Работа с байтовыми строками в Python
  2. Переопределение метода __pow__
  3. Lambda Functions in Python
  4. Работа с изображениями PIL
  5. Тип CodeType в Python.
  6. CLI-инструмент howdoi
  7. Создание новых функций с помощью functools.partial
  8. Однострочники Python
  9. Комментарии в Python
  10. Генераторные функции в Python
  11. Поиск уникальных и повторяющихся элементов
  12. Объединение словарей в Python
  13. Работа с timedelta в Python
  14. Проверка окончания строки с помощью str.endswith()
  15. Применение функций в Python
  16. Запрос DELETE с библиотекой requests
  17. Поток данных в Python
  18. Использование модуля __future__
  19. Работа с JSON в Python
  20. Модуль Operator в Python
  21. Метод сравнения объектов в Python
  22. Библиотека itertools: объединение списков
  23. JSON-esque в Python
  24. Удаление URL-адресов в Python
  25. ChainMap.new_child() — добавление нового словаря
  26. Обновление множества в Python
  27. Итерации в Python
  28. Работа со строками в Python
  29. Создание генераторов в Python
  30. Оператор морж в Python 3.8
  31. Функции классификации комплексных чисел
  32. Подсказки типов в Python
  33. Проверка версии Python
  34. Выбор редактора кода.
  35. Измерение времени выполнения с помощью time
  36. Объединение списков в Python
  37. Тестирование времени с Freezegun
  38. Функция map() и ленивая оценка
  39. Копирование и вставка текста в Python
  40. Функции all и any в Python
  41. Разделение строки на пары ключ-значение.
  42. Создание класса очереди

Marketello читают маркетологи из крутых компаний