Курс 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. Получение текущей даты в Python
  5. Избегайте изменяемых аргументов
  6. Генераторы и сеты в Python
  7. Списки в Python: основы
  8. Необязательные аргументы в Python
  9. Magic Commands — улучшение работы с Python
  10. Создание словаря через dict comprehension
  11. Работа с модулем os в Python
  12. Библиотека wikipedia для Python
  13. Создание списков в Python
  14. Получение размера объекта с sys.getsizeof()
  15. Запрос пароля с помощью getpass
  16. Работа с CSV файлами в Python
  17. Поиск индексов в списке
  18. Генераторные функции в Python
  19. Метод classmethod
  20. Создание словарей с defaultdict()
  21. Функция print() — вывод информации
  22. lru_cache оптимизация функций
  23. Работа с датами в Python
  24. Управление виртуальными окружениями в Python
  25. Переопределение метода __or__()
  26. Работа с множествами в Python
  27. Объединение кортежей в Python
  28. Копирование словарей и списков в Python
  29. Сортировка в Python
  30. Python: изменяемые и неизменяемые коллекции
  31. Декодирование строк в Python
  32. Метод join() с набором
  33. Разделение строки с помощью re.split()
  34. Howdoi — получение ответов из терминала
  35. Методы list в Python
  36. Статическая типизация в Python
  37. Экспорт данных в файл.
  38. Функция enumerate в Python
  39. Логический оператор «and» в Python
  40. Загрузка постов Instagram
  41. Декораторы классов
  42. Счетчик ссылок в Python
  43. Расширение информации об ошибке в Python
  44. Создание функций с произвольным количеством аргументов

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