Курс 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"
- Создание словаря с значением по умолчанию
- Изменение переменной в Python: nonlocal
- Вывод букв строки в Python
- Функция findall() для поиска вхождений строки
- Сравнение строк в Python
- Работа с очередями в Python
- Создание функций высшего порядка
- Декораторы в Python
- Автоматизация скриптов на AWS Lightsail.
- Форматирование чисел в Python
- Разделение строки с помощью split()
- Лямбда-функции в defaultdict
- Простой калькулятор Python
- Работа с JSON данными в Python
- Получение ID текущего процесса
- Измерение времени выполнения кода с помощью time
- Функции min(), max(), sum()
- Возврат нескольких значений
- Создание namedtuple списком полей
- Создание вложенных циклов for
- Получение идентификатора объекта в памяти
- Метод setdefault() в Python
- Работа с географическими данными.
- Печать в одной строке
- Расширение информации об ошибке в Python
- Сравнение def и lambda функций в Python
- Обучение модели с указанием эпох
- Основные операции с библиотекой Numpy
- Работа с срезами в Python
- Генерация QR-кодов с библиотекой qrcode
- Копирование объектов в Python
- Итерация по копии коллекции
- Работа с enumerate()
- Основные методы NumPy
- Повторение элементов в Python
- Обработка исключений в Python 3
- Локальные переменные.
- Порядок операций в Python
- Работа с CSV файлами в Python
- Метод setdefault() в Python
- Работа с контекст-менеджером «with»
- Удаление специальных символов
- Показ всплывающих окон Tkinter
- Проверка типа данных
- Отступы в Python
- Распаковка элементов массива















