Курс 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. Ускорение кода с помощью векторизации
  3. Работа со словарями в Python
  4. Создание виртуальной среды
  5. Оператор Walrus в Python
  6. Python groupby() из itertools: работа с повторяющимися элементами
  7. Рациональные числа в Python
  8. Иерархия классов в Python
  9. Удаление ресурса в Python
  10. Генераторы по генератору
  11. Работа со строками в Python
  12. Генератор чисел Фибоначчи
  13. Копирование в Python
  14. Функция findall() для поиска вхождений строки
  15. Синхронизация потоков с time.sleep()
  16. Особенности запятых в Python
  17. Инициализация структур данных
  18. Копирование словарей и списков в Python
  19. Оценка точности модели
  20. Удаление элемента из списка в Python
  21. Обработка исключений в Python
  22. Создание вкладок с TKinter
  23. Структуры данных в Python
  24. Проверка существования переменной с оператором :=
  25. Оператор break в Python
  26. Поиск частого элемента
  27. Метод get для словарей
  28. Объединение словарей в Python 3.5+
  29. Получение списка кортежей из словаря
  30. Метод join() для объединения элементов строки
  31. Импорт и использование модулей в Python
  32. Декораторы в Python
  33. Порядок операций в Python
  34. Импорт объектов из модулей
  35. Замыкания в Python
  36. Работа со случайными элементами
  37. Аргументы *args и **kwargs
  38. Управление контекстом выполнения
  39. Метод index() в Python
  40. Декоратор проверки активности
  41. Быстрый поиск кода
  42. Получение срезов итераторов
  43. Определение относительного пути
  44. Генераторы данных
  45. Работа с путями в Python

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