Курс Python → Копирование объектов в Python

Модуль copy в Python предоставляет возможность создания копий объектов, что особенно полезно при работе с изменяемыми коллекциями или коллекциями, содержащими изменяемые элементы. При обычном присваивании объекта переменной создается лишь ссылка на этот объект, что может привести к нежелательным изменениям в оригинальном объекте. Для избежания подобных проблем используется копирование объектов с помощью модуля copy.

Существует два типа копирования объектов с использованием модуля copy: поверхностное и глубокое. Поверхностное копирование создает новый объект, но ссылается на те же объекты, что и оригинал. Глубокое копирование, в свою очередь, создает копию объекта, а также копии всех объектов, на которые он ссылается.

Для выполнения поверхностного копирования объектов используется функция copy.copy(), а для глубокого копирования — функция copy.deepcopy(). При глубоком копировании все объекты, на которые ссылается оригинал, также рекурсивно копируются, что обеспечивает полную изоляцию копии от оригинала.


import copy

original_list = [1, 2, [3, 4]]
shallow_copy = copy.copy(original_list)
deep_copy = copy.deepcopy(original_list)

original_list[2][0] = 5

print(original_list)  # [1, 2, [5, 4]]
print(shallow_copy)   # [1, 2, [5, 4]]
print(deep_copy)      # [1, 2, [3, 4]]

В приведенном выше примере мы создаем оригинальный список original_list, затем создаем поверхностную копию shallow_copy и глубокую копию deep_copy. После изменения элемента вложенного списка в оригинальном списке, видим, что это изменение отразилось на поверхностной копии, но не на глубокой копии.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Создание и удаление объектов
  2. Работа с изображениями Pillow
  3. Кортеж в Python: создание, доступ, изменение
  4. Удаление ключа из словаря
  5. Модуль math: основные функции
  6. Декоратор @override
  7. F-строки в Python
  8. Работа с рекламными данными в Pandas
  9. Удаление элементов из списка в Python
  10. Замена подстроки
  11. Получение обратного списка чисел
  12. Путь к интерпретатору Python
  13. Пропуск начальных строк с помощью dropwhile()
  14. Работа с каталогами в Python
  15. Python UserString — создание подклассов строк
  16. Функция enumerate в Python
  17. Поиск самого длинного слова в списке с использованием max()
  18. Блок else в циклах.
  19. Работа со временем в Python
  20. Сравнение def и lambda-функций
  21. Генераторы в Python
  22. Генераторные выражения и islice.
  23. Комментарии в Python
  24. List Comprehension Tutorial
  25. Переопределение оператора % для объектов
  26. Сортировка в Python
  27. Виртуальные среды в Python
  28. Метод difference_update() — разность множеств
  29. Открытие и запись файлов
  30. Официальный канал Python в Telegram
  31. Цикл for в Python
  32. Избегание изменяемых аргументов
  33. Работа с часовыми поясами в Python
  34. Различия символов в Python
  35. Повторение и перенос строки
  36. Команда %dhist — список посещенных каталогов
  37. Цикл for в Python
  38. Метод setdefault() в Python
  39. Поиск самого частого элемента
  40. Установка и обучение ChatterBot
  41. Преобразование документов в PDF с помощью Spire.Office
  42. Игра «Угадывание чисел»
  43. Настройка Cron
  44. Списковое включение в Python
  45. Списки в Python: основы
  46. Операции с числами в Python

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