Курс 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"
- Логический оператор «and» в Python
- Python itertools combinations() — группировка элементов
- Создание новой даты в Python
- Работа с defaultdictами в Python
- Генераторы по генератору
- Colorama: окрашивание текста в Python
- Методы работы со списками
- Работа с исключениями в Python
- Работа со случайными элементами
- globals и locals
- Использование двоеточия в Python
- Генераторы списков в Python
- Создание пользовательской коллекции в Python
- Декораторы для регистрации функций
- Функциональное программирование в Python
- Отслеживание выполнения программы с библиотекой tqdm
- Работа с библиотекой requests
- Объединение, распаковка и деструктуризация
- Основы работы с базами данных в Python
- Декораторы в Python
- Работа с timedelta
- Роль запятой в Python
- Однострочники Python
- Получение текущей даты и времени
- Проверка элемента в множестве.
- Ускоренный импорт библиотек
- Управление контекстом выполнения кода
- Дефолтные параметры в Python
- Область видимости переменных
- Удаление ресурса в Python
- Улучшение читаемости кода в Python
- Разделение строк в Python
- Преобразование данных в Python
- Работа с множествами в Python
- Работа с URL-адресами в Python
- Генераторы в Python
- Функция с **kwargs в Python
- Принцип одной функции
- Метод __ilshift__ для битового сдвига влево
- Оператор walrus в Python
- Декораторы в Python
- Необязательные аргументы в Python
- Печать месячного календаря
- Переопределение унарных операторов
- Создание словаря через dict comprehension
- Удаление элемента из списка
- Защита данных в Python















