Курс 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. Чтение и запись TOML-конфигов
  2. Подсчет элементов с помощью Counter
  3. Лямбда-функции в defaultdict
  4. Хешируемые ключи в Python
  5. Оператор «моржа» (Walrus Operator)
  6. Преобразование PowerPoint в PDF.
  7. Создание директории в Python
  8. Работа с CSV файлами
  9. Навыки Python: строки, типы данных
  10. Активация Matplotlib в Jupyter
  11. Именованные кортежи в Python
  12. Экспорт данных с помощью writefile
  13. Логирование с Logzero
  14. Python defaultdict добавление ключа
  15. Вложенные генераторы в Python
  16. Использование type hints
  17. Передача неизвестных аргументов в Python.
  18. Расширение операции побитового «и» в Python
  19. Использование эмодзи в Python
  20. Списковое включение в Python
  21. Progress с библиотекой tqdm
  22. Создание именованных кортежей в Python
  23. Создание списков в Python
  24. Разделение функций на этапы
  25. Создание копии списка в Python
  26. Работа с IP-адресами в Python
  27. Объединение списков с использованием itertools.chain
  28. Добавление вложенных списков
  29. Отправка HTTP-запросов с User-Agent
  30. Работа с WindowsPath()
  31. Проверка ввода с помощью isdigit
  32. Работа с дробями в Python
  33. Метод lt для сортировки объектов
  34. Добавление Progressbar в Python
  35. Конкатенация строковых литералов
  36. Бесконечные списки в Python
  37. Оператор is в Python
  38. Работа с JSON в Python
  39. Печать календаря в Python
  40. Удаление дубликатов из списка с помощью dict.fromkeys
  41. Метод rmatmul для пользовательских матриц
  42. Роль ключевого слова self
  43. PUT запрос для обновления данных
  44. Работа с контекстными менеджерами

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