Курс 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"
- PUT запрос для обновления данных
- Парсинг статей с Newspaper3k
- Метод rxor для операции побитового исключающего «или»
- Модуль sys: основы
- Списковое включение в Python
- Перевернуть список в Python
- Непрерывная проверка в Python
- Сортировка HTML по CSS-селектору
- Создание обратного итератора
- Метод join() для объединения элементов строки
- Объединение списков в Python
- Разделение строки с помощью re.split()
- Метод get() в Python
- Метод ipow для возведения в степень
- Работа с множествами в Python
- Поиск наиболее частого элемента в списке
- Декораторы в Python
- Отношения подклассов в Python
- Сортировка в Python
- Мониторинг памяти с Pympler
- Открытие и запись файлов
- Генератор списка с условием if
- Закрытие файла в Python
- Работа с географическими данными.
- Навыки Python: строки, типы данных
- Декораторы с аргументами
- Flask: создание веб-приложений
- Метод join() для объединения элементов
- Декодирование байтов в строку
- Работа с файлами в Python
- Курсы Яндекс Практикум
- Работа с пакетами
- Метод split() в Python
- Заказ карты Тинькофф Black
- Генераторы списков в Python
- Удаление дубликатов в pandas
- Поиск индекса элемента в списке
- Обновление множества в Python
- SciPy: широкий функционал для математических операций
- Перевод двоичного кода в целое число
- Сортировка с помощью key
- Получение списка файлов в директории с использованием os
- Переопределение метода divmod
- Определение функций с необязательными аргументами
- Метод count() для списка
- Python reversed() vs срез[::-1]















