Курс 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. Метод __call__ в Python
  2. Измерение времени выполнения кода
  3. Основы Python за 14 дней
  4. Различия символов в Python
  5. Преобразование букв в нижний регистр
  6. Функции min(), max(), sum()
  7. Работа с типами данных в Python с помощью pydantic.
  8. Метод matmul для умножения матриц
  9. Возведение в квадрат с помощью itertools
  10. split() — разделение строки
  11. Подсказки при вводе данных в Python
  12. Сравнение строк в Python
  13. Установка и использование Virtualenv
  14. Отладка производительности Python
  15. Непрерывная проверка в Python
  16. Расчет времени выполнения
  17. Взаимодействие с sys
  18. Оптимизация методов в Python 3.7
  19. Локальные переменные.
  20. Выражения-генераторы в Python
  21. Python Менеджер контекста
  22. Создание новых функций с помощью functools.partial
  23. Оператор Walrus в Python 3.8
  24. Просмотр атрибутов и методов класса
  25. Экспорт данных с помощью writefile
  26. Метод init в Python
  27. Установка и использование Python-dateutil
  28. Генераторные функции в Python
  29. Разделение строки в Python
  30. capitalize() — изменение регистра первого символа строки
  31. Равенство и идентичность в Python
  32. Поиск шаблона в строке
  33. Регулярные выражения в Python
  34. Извлечение аудио из видео
  35. Оператор += для объединения строк
  36. Сортировка HTML по CSS-селектору
  37. Управление контекстом с помощью декоратора contextmanager
  38. Работа с путями в Python
  39. Функции all и any в Python
  40. Анонимные функции в Python
  41. Функция zip() в Python
  42. Объединение списков с использованием itertools.chain
  43. Просмотр внешних файлов в %pycat
  44. Удаление элементов из списка в Python.
  45. Работа со словарями в Python
  46. Метод join() для объединения элементов
  47. Создание генераторов
  48. Перезагрузка оператора в Python

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