Курс 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. Структуры данных в Python
  3. Оболочка Python
  4. Срез в Python
  5. Повторение элементов в Python
  6. Работа с JSON в Python
  7. Подсчет элементов с помощью Counter
  8. Вычисление разности множеств в Python
  9. Распаковка значений в Python
  10. Переворот последовательности
  11. Создание списка через итерацию
  12. Работа с итераторами в Python
  13. Псевдонимы в Python
  14. Кортежи в Python: особенности и преимущества
  15. Создание пользовательской коллекции в Python
  16. Перемешивание списка с shuffle()
  17. Блок else в циклах Python
  18. Работа с модулем random
  19. Pretty-printing JSON в Python
  20. Определение относительного пути
  21. Преобразование в float
  22. Список переменных в Python
  23. Метод join() для объединения строк
  24. Хешируемые ключи в Python
  25. Работа с NumPy массивами
  26. Метод ipow для возведения в степень
  27. Работа с NumPy.linalg
  28. Избегание циклических зависимостей классов в Python
  29. Работа с путями в Python
  30. Модуль pprint: улучшение вывода данных
  31. Работа с временем в Python
  32. Скачать видео с YouTube
  33. Получение пути к текущему скрипту с помощью os
  34. Поиск повторов в списке
  35. Форматирование строк в Python
  36. Сортировка с параметром key
  37. Циклы for в Python
  38. Генераторы в Python
  39. Оптимизация интернирования строк
  40. Цикл for в Python
  41. Создание списков в Python
  42. Декоратор защиты анонимных пользователей
  43. Возврат нескольких значений из функции
  44. Операторы += в Python
  45. Генераторы в Python
  46. Объединение списков с использованием itertools.chain

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