Курс 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. Форматирование данных с pprint
  2. Цикл for в Python
  3. Оптимизация памяти с __slots__
  4. Форматирование строк в Python
  5. Обработка ошибок ввода данных
  6. Обратный список чисел
  7. Обработка исключений в Python
  8. Область видимости переменных
  9. Установка и обучение ChatterBot
  10. Декоратор защиты анонимных пользователей
  11. Проверка надежности пароля на Python
  12. Доступ к локальным переменным
  13. Логирование с Logzero
  14. Перевод эмодзи и эмотиконов.
  15. Метод remove() для удаления элемента из списка
  16. Лямбда-функции в Python
  17. Многострочные комментарии в Python
  18. Переопределение унарных операторов
  19. Работа с набором данных CIFAR10 в PyTorch
  20. Логические значения в Python
  21. Работа с Path в Python
  22. Поиск уникальных и повторяющихся элементов
  23. Приближение чисел в Python
  24. Срезы в Python
  25. Работа с timedelta в Python
  26. Сортировка данных с лямбда-функциями
  27. Использование эмодзи в Python
  28. Создание GUI с Tkinter: Entry
  29. Динамическая типизация в Python
  30. Профилирование с Pandas
  31. Работа с zip-архивами в Python
  32. Очистка входных данных
  33. Многострочные строки в Python
  34. Освобождение памяти в Python
  35. Активация Matplotlib в Jupyter
  36. Игра Виселица на Python
  37. Циклы for в Python
  38. *args и **kwargs в Python
  39. Работа с кортежами в Python
  40. Установка виртуального окружения Python
  41. Оператор Walrus в Python
  42. Многострочные комментарии в Python
  43. Атрибуты объекта в Python

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