Курс 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. Модуль xkcd: добавление юмора в Python
  2. Объединение списков в строку
  3. Атрибуты класса и экземпляра в Python
  4. Печать календаря
  5. Область видимости переменных
  6. Параллельные вычисления в Python
  7. Удаление и повторная вставка ключа в OrderedDict
  8. Названия переменных
  9. Проверка файла .py на синтаксис.
  10. Функция enumerate в Python
  11. Методы сравнения множеств
  12. Пересечение списков с использованием множеств
  13. Разбиение строки в Python
  14. Сериализация данных в JSON с помощью json.dumps
  15. Генераторы списков в Python
  16. Курс Data Scientist в медицине
  17. Управление контекстом выполнения
  18. Преобразование символов в нижний регистр
  19. Преобразование чисел в Python
  20. Уникальные значения из списка
  21. Выход из профиля в Django
  22. Аргумент по умолчанию
  23. Создание списка дат
  24. Распаковка элементов массива
  25. Непрерывная проверка в Python
  26. Метод append() для списка
  27. Работа со словарями Python
  28. Генератор чисел Фибоначчи
  29. Отделение звука от видео
  30. Измерение времени выполнения кода
  31. Изменения в обработке логических значений
  32. Обновление и получение данных в SQLite
  33. Обрезка изображения с Pillow
  34. Работа с CSV в Python
  35. Однострочники Python
  36. Структуры данных в Python
  37. Работа с многоуровневыми словарями в Python
  38. Декоратор защиты анонимных пользователей
  39. Установка Python3.7 и PIP
  40. Делегирование в Python
  41. Mad Libs Generator
  42. Создание директории в Python
  43. Сглаживание списка
  44. Настройка вывода в Numpy
  45. Группировка элементов в словарь
  46. Переворот последовательности
  47. Реализация операции -= для пользовательского класса
  48. Создание словарей с defaultdict

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