Курс 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. Сортировка HTML-элементов
  3. discard() — удаление элемента из множества
  4. Генерация тестовых данных с factory_boy
  5. Логический оператор «and» в Python
  6. Оператор is в Python
  7. Разделение строки в Python
  8. Обмен значений переменных в Python
  9. Импорт и использование модулей в Python
  10. Работа с CSV файлами в Python
  11. Подсчет элементов в списке с Counter
  12. Особенности запятых в Python
  13. Создание итератора
  14. Отслеживание прогресса с tqdm
  15. Управление виртуальными окружениями в Python
  16. Хеши в Python
  17. Enum в Python
  18. Обязательные аргументы в Python
  19. Библиотека sh: использование команд bash в Python
  20. Избегайте изменяемых аргументов
  21. Фильтрация входных данных в Python
  22. Именованные аргументы в Python
  23. Отношения подклассов в Python
  24. Работа со строками в Python.
  25. Метод enumerate() в Python
  26. Округление дробей в Python
  27. Многострочные строки в Python
  28. Переопределение метода __pow__
  29. Генератор списка с условием if
  30. Вывод сложных структур данных с помощью pprint
  31. Настройка вывода в Numpy
  32. Обработка исключений
  33. Solidity для DeFi Ethereum
  34. Функции-генераторы в Python
  35. Оператор continue в Python
  36. Просмотр файла в Jupyter Noteboo
  37. Многоточие в Python
  38. Работа с часовыми поясами в Python.
  39. Функция format() в Python
  40. Поиск частого элемента
  41. Управление контекстом выполнения
  42. Список переменных с %who
  43. Атрибуты класса и экземпляра
  44. Безопасные SQL-запросы в Python 3.11

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