Курс 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. Рекурсия для обращения строки
  2. Асинхронное выполнение задач в процессах
  3. Создание треугольника Паскаля
  4. Список и кортеж в Python
  5. Возврат нескольких значений
  6. Метод join() для объединения строк
  7. Удаление символа из строки
  8. Обновление и получение данных в SQLite
  9. Метод ifloordiv для пользовательских классов
  10. Работа с URL-адресами в Python
  11. Удаление специальных символов
  12. Подсчет частоты элементов с Counter
  13. Основные операции с библиотекой Numpy
  14. Удаление дубликатов из списка с помощью dict.fromkeys
  15. Оператор Walrus: правильное использование
  16. Разработка игры Pong с turtle
  17. Поиск самого частого элемента
  18. Декораторы в Python
  19. Лямбда-функции в defaultdict
  20. Использование функции enumerate()
  21. Изменение переменной в Python: nonlocal
  22. Регистрация на TenChat
  23. Удаление символов новой строки в Python.
  24. Оператор «or» в Python
  25. Сериализация объектов в Python
  26. Модуль sys: основы
  27. Прокачанный трейсинг ошибок
  28. Избегайте использования goto
  29. Форматирование заголовков в Python
  30. Избегайте ошибку FileNotFoundError
  31. Исправление ошибки NameError
  32. Преобразование PowerPoint в PDF.
  33. F-строки в Python 3.8
  34. Блок try-except-else
  35. Преобразование символов с помощью map
  36. Оптимизация поиска в словарях
  37. Создание множества в Python
  38. Проверка дубликатов в Python
  39. Фильтрация элементов с помощью islice
  40. Работа с срезами в Python
  41. Управление экспортом элементов
  42. Логический оператор «and» в Python
  43. Подсчет элементов в списке с Counter
  44. Применение функции к списку

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