Курс 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. ChainMap.new_child() — добавление нового словаря
  2. Применение промокода в Много лосося
  3. Форматирование строк в Python.
  4. Извлечение новостей с помощью newspaper3k
  5. Вывод символов строки в Python
  6. Добавление элемента в список.
  7. Функции-генераторы в Python
  8. Управление User-Agent в Python
  9. Сортировка элементов с OrderedDict
  10. Логические значения в Python
  11. Названия столбцов в Python таблицах
  12. Работа с библиотекой xkcd
  13. Сравнение объектов в Python
  14. Парсинг веб-страниц с Beautiful Soup
  15. Сортировка элементов в Python
  16. Группы исключений в Python
  17. Равенство и идентичность в Python
  18. Создание пользовательской коллекции в Python
  19. Создание списка дат
  20. Работа с файлами в Python
  21. Работа с прокси в Python
  22. Изменение списка срезом
  23. CSV строка разделение в Python
  24. Сортировка и обратный порядок
  25. Antigravity модуль
  26. Копирование в Python
  27. Бесконечные списки в Python
  28. Группы исключений в Python
  29. Библиотека Chartify: руководство
  30. Структурирование данных с Pydantic
  31. Повторение элементов в Python
  32. Создание комплексных чисел
  33. Справка по импортированным модулям
  34. Извлечение статей с newspaper3k
  35. Создание namedtuple из словаря
  36. Метод get для словаря
  37. Функция enumerate в Python
  38. Отрицательные индексы списков
  39. Получение текущей даты и времени
  40. Курс по дообучению ChatGPT
  41. Путь к интерпретатору Python
  42. Управление ресурсами в Python
  43. Поиск самого частого элемента
  44. Работа с изменяемыми списками
  45. Оператор walrus в Python
  46. Сложные типы данных в Python
  47. Заказ карты Тинькофф Black

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