Курс 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. Работа с набором данных CIFAR10 в PyTorch
  2. Класс UserDict: дополнительная функциональность
  3. Передача аргументов в Python
  4. Работа с очередями в Python
  5. Цикл for в Python
  6. Именованные срезы в Python
  7. Печать комбинаций в Python с Itertools
  8. Динамическая типизация в Python
  9. Модуль antigravity: генерация координат
  10. Абстракции словарей и множеств в Python
  11. Автоматизация скриптов на AWS Lightsail.
  12. Очистка списка от False, None, 0, «»
  13. Удаление элементов по срезу
  14. Метод classmethod
  15. Глубокое копирование объектов
  16. Копирование файлов с shutil()
  17. Генерация случайных данных в NumPy
  18. Создание директории в Python
  19. Параллельные вычисления в Python
  20. Оператор in в Python
  21. Сравнение def и lambda функций в Python
  22. Оптимизация гиперпараметров в Python
  23. Отрицательные индексы списков в Python
  24. Передача словаря через **kwargs
  25. Добавление элемента в список.
  26. Автоматизация с Python
  27. Ноутбуки AMD Ryzen ™ 4000: мощность и эффективность
  28. Работа с SQLite в Python
  29. Капитализация строк
  30. Функция divmod() в Python
  31. Замена элементов в списке с помощью генераторов списков
  32. Названия столбцов в Python таблицах
  33. Работа со словарями с defaultdict из collections
  34. Solidity для DeFi Ethereum
  35. Переменная с нижним подчеркиванием
  36. Фильтрация входных данных в Python
  37. Работа с enumerate()
  38. Функции map, filter и reduce
  39. Генерация случайных чисел в Python
  40. Библиотека sh: удобные команды терминала
  41. Однострочники Python
  42. Создание панели меню Tkinter
  43. Преобразование данных в Python
  44. Распаковка значений в Python
  45. Метод get() в Python
  46. Метод join() для объединения элементов
  47. Функции map, filter, reduce

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