Курс 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"
- Разделение строки с помощью re.split()
- Срезы в Numpy
- Применение функции к списку
- Роль object и type в Python
- Многопроцессорное программирование в Python
- Генератор чисел Фибоначчи
- Модуль sys: основы
- Сохранение Unicode в JSON
- Частичное совпадение ввода
- Работа с датой и временем в Python
- Отступы в Python
- Сортировка с помощью key
- Определение функций с необязательными аргументами
- Проверка ввода с помощью isdigit
- Нахождение самого длинного слова в списке с помощью max
- Логирование с Loguru
- Проверка существования переменной с оператором :=
- Выборка чисел
- Многоточие в Python
- Виртуальные среды в Python
- lru_cache оптимизация функций
- Разделение строки на пары ключ-значение.
- Область видимости переменных
- Локальные переменные.
- Сортировка списка по индексам
- Измерение времени выполнения кода с использованием time
- Создание и использование модулей в Python
- Метод Enumerate() для списков
- Инверсия списков и строк в Python
- Обработка ошибок в Python
- Создание списка дат
- Класс Counter() для подсчета элементов
- Документация функции help() в Python
- Список переменных в Python
- Копирование объектов в Python
- Основные функции и модули Python
- Загрузка постов Instagram
- Метод __ixor__ для побитового исключающего ИЛИ
- Многострочные комментарии в Python
- Аргументы *args и **kwargs
- Numpy: разбиение массивов
- Python: изменяемые и неизменяемые коллекции
- Блок else в обработке исключений
- Удаление дубликатов из списка
- Копирование файлов с shutil()
- Аннотации типов в Python















