Курс 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. Pillow: работа с изображениями
  2. Асинхронное программирование с asyncio
  3. CSV строка разделение в Python
  4. Потоковый ввод в Python
  5. Работа со строками
  6. Оператор in и not in в Python
  7. Создание вложенного генератора
  8. Генераторные функции в Python
  9. Оператор zip в Python
  10. Множественные конструкторы в Python
  11. Подсчет элементов в Python
  12. Проверка наличия элемента в списке
  13. Получение списка кортежей из словаря
  14. Создание GUI на Tkinter
  15. Создание namedtuple списком полей
  16. Метод count() для списка
  17. Метод ipow для возведения в степень
  18. Переопределение унарных операторов
  19. Создание панели меню Tkinter
  20. Работа с CSV файлами в Python
  21. Циклы в Python
  22. Операции с кортежами
  23. Работа с itertools
  24. Обработка данных в Python
  25. Сравнение строк в Python
  26. Списки в Python: основы
  27. Работа с JSON в Python
  28. Оператор walrus в Python
  29. Создание циклической ссылки
  30. Профилирование с Pandas
  31. Проверка файла .py на синтаксис.
  32. Оптимизация параметров в Python
  33. Тестирование с unittest
  34. Модуль subprocess: запуск внешних команд
  35. Concrete Paths в Python
  36. Область видимости переменных
  37. Строки в Python: апострофы и кавычки
  38. Исправление ошибки NameError
  39. Генерация фальшивых данных с Faker
  40. Печать списка с помощью метода join
  41. Модуль math: константы π и e
  42. Итераторы с потерямиZIP
  43. Изменение элемента списка
  44. Работа с Telegram API на Python
  45. Основные методы NumPy
  46. split() без разделителя

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