Курс 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. Работа с базами данных SQLite
  2. Разделение строк в Python
  3. Генератор надежных паролей
  4. Работа с файлами и директориями в Python.
  5. Переопределение метода __rshift__
  6. Форматирование строк в Python
  7. Генераторы в Python
  8. Объединение списков в Python
  9. Запуск асинхронной корутины
  10. Копирование файлов с shutil()
  11. Метод сравнения объектов в Python
  12. Игра Виселица на Python
  13. Вывод с переменной через запятую
  14. Перевод двоичного кода в целое число
  15. Форматирование вывода списков
  16. Логические значения в Python
  17. Создание Telegram-бота на Python
  18. Проверка версии Python
  19. Сортировка HTML-элементов
  20. Передача неизвестных аргументов в Python.
  21. Определение размера папок в Python
  22. Генерация строк с .join()
  23. Работа с deque из collections
  24. Отступы в Python
  25. Удаление дубликатов из списка
  26. Объединение словарей в Python
  27. Класс UserDict: дополнительная функциональность
  28. Concrete Paths в Python
  29. Библиотека sh: использование команд bash в Python
  30. Любовь к Python
  31. Генерация резюме в Gensim
  32. Функция zip() для объединения списков
  33. Множественные конструкторы в Python
  34. Получение размера объекта с sys.getsizeof()
  35. Метод radd для пользовательских чисел
  36. Выключение компьютера с помощью Python
  37. Преобразование символов в нижний регистр
  38. Функции map, filter, reduce
  39. Оператор объединения словарей
  40. Импортирование в Python
  41. Python Метод del.
  42. Установка и загрузка Instaloader
  43. Динамическая типизация в Python
  44. Логирование с Logzero
  45. Добавление Progressbar в Python
  46. Lambda-функция в Python: использование с map() и sum()
  47. Списковый компрехеншен.

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