Курс 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. Показ всплывающих окон Tkinter
  5. Ввод нескольких значений
  6. Сортировка в Python
  7. Блок else в Python
  8. Чтение бинарного файла в Python.
  9. Оператор деления для класса Rational
  10. Логирование в Python
  11. Поиск уникальных и повторяющихся элементов
  12. Проверка надежности пароля на Python
  13. Модуль pprint
  14. Библиотека sh: удобные команды терминала
  15. Создание копии списка в Python
  16. Удаление URL-адресов в Python
  17. Циклы в Python
  18. Инициализация структур данных
  19. Numpy: разбиение массивов
  20. Переопределение метода
  21. Magic Commands — улучшение работы с Python
  22. Запуск внешнего кода в Jupyter
  23. Моржовый оператор в Python 3.8
  24. Оператор in для Python
  25. Избегайте использования goto
  26. Декораторы с @wraps
  27. Блок else в циклах.
  28. Библиотека wikipedia для Python
  29. Создание итератора
  30. Изменение списка срезами
  31. Динамические маршруты во Flask
  32. Создание детектора плагиата
  33. Лямбда-функции в Python
  34. Возврат нескольких значений
  35. Получение частей дроби
  36. Оператор морж в Python 3.8
  37. Импорт модуля из другого каталога
  38. F-строки в Python
  39. Преобразование генераторов в циклы
  40. Поиск индексов подстроки
  41. Использование функции enumerate()
  42. Оператор in в Python
  43. Работа с файлами и директориями в Python.
  44. Создание и удаление объектов
  45. Оператор del в Python
  46. Работа с комплексными числами

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