Курс 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. Форматирование строк в Python
  3. Библиотека Emoji: использование смайлов в Python
  4. capitalize() — изменение регистра первого символа строки
  5. Конкатенация строк в Python
  6. Условные выражения в Python
  7. Управление памятью в Python
  8. Красивый вывод списка
  9. Параллельные вычисления в Python
  10. Мощь вложенных функций в Python
  11. Работа с классами данных
  12. Поиск уникальных и повторяющихся элементов
  13. Назначение максимального и минимального значения переменной в Python.
  14. Генераторы списков в Python
  15. Объявление переменных в Python
  16. Управление контекстом с помощью декоратора contextmanager
  17. Аргументы *args и **kwargs
  18. Обход дочерних элементов BeautifulSoup
  19. PrettyTable: создание таблицы
  20. Удаление ключа из словаря
  21. Глобальные переменные в Python
  22. Копирование в Python
  23. Оператор += для объединения строк
  24. Counter() — подсчет элементов
  25. Переопределение метода __or__()
  26. Извлечение новостей с помощью newspaper3k
  27. Использование super() в Python
  28. Оценка точности модели
  29. Упрощение работы с JSON-данными в Python
  30. Работа со слайсами
  31. Тип CodeType в Python.
  32. Установка пакета в Python
  33. Гибкие функции Python
  34. Отслеживание прогресса с tqdm
  35. Создание функций высшего порядка
  36. Асинхронное программирование с asyncio
  37. Python Тесты и Гайды
  38. Многострочные комментарии в Python
  39. Настройка нарезки списков
  40. Вывод переменной и строки в Python
  41. Преобразование чисел в Python
  42. Подсчет количества элементов в списке
  43. Monkey Patching в Python
  44. Функции map() и reduce() в Python
  45. Функция enumerate() в Python
  46. Логические значения в Python
  47. Получение текущей директории
  48. Регистрация на курсы SF Education

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