Курс 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. Структура данных словарь в Python
  3. Удаление символа из строки
  4. Функция enumerate в Python
  5. Обмен значений переменных в Python
  6. Перезапуск ячейки в Jupyter Notebook с dostoevsky
  7. Импортирование в Python
  8. Генератор списка в Python
  9. Python: цикл for и оператор присваивания
  10. Печать календаря
  11. Использование подчеркивания в REPL
  12. Асинхронное программирование с asyncio
  13. None в Python: использование и особенности
  14. Перевод текста с Python Translator
  15. Иерархия классов в Python
  16. Пустой оператор pass в Python
  17. Добавление вложенных списков
  18. Кортеж в Python: создание и использование
  19. Метод enumerate() в Python
  20. Фильтрация данных в Python.
  21. Условное добавление элементов в список
  22. Декораторы в Python
  23. Оценка точности модели
  24. Python 3.12: Псевдонимы типов
  25. Запуск Python из интерпретатора
  26. Python Calendar Usage
  27. Работа с OpenCV
  28. Объединение Python и Shell
  29. Декоратор защиты анонимных пользователей
  30. Переопределение метода __lshift__
  31. Управление ресурсами в Python
  32. Использование эмодзи в Python
  33. Инициализация структур данных
  34. Рациональные числа в Python
  35. Обновление ключей в Python
  36. Логические значения в Python
  37. Функция sleep() в Python
  38. Работа с GitHub в Telegram
  39. Colorama: окрашивание текста в Python
  40. Метод eq для сравнения объектов
  41. Функция __init__ в Python
  42. Распаковка элементов массива
  43. Генераторные выражения и islice.

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