Курс 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"
- Измерение времени выполнения с помощью time
- Работа с множествами в Python
- Возврат нескольких значений
- Работа с переменными в Python
- Лямбда-функции в Python
- Синхронизация доступа к ресурсам
- Python enumerate() для работы с индексами
- Кортеж в Python: создание и использование
- Форматирование даты с strftime()
- Вакансии в Nebius
- Создание и инициализация объектов
- Генераторы списков в Python
- Замена символов в строке
- Объединение словарей в Python
- Атрибуты класса и экземпляра
- Создание итерируемых объектов
- Область видимости переменных
- ROT13 Шифр Цезаря в Python
- Настройка логгера Logzero
- Функции map() и reduce() в Python
- Просмотр внешнего файла в Python
- Работа с датами в Python
- Модуль Antigravity в Python 3
- Работа с часовыми поясами в Python
- Ветвление выражения в Python
- Метод ifloordiv для пользовательских классов
- Функции с необязательными аргументами
- Аннотации типов в Python
- Очистка строки в Python
- Очистка данных в Python
- Деление в Python
- Поиск индексов в списке
- Получение списка файлов в директории с использованием os
- Глобальные переменные в Python
- Улучшенные подсказки для импорта в Python 3.12
- Управление памятью в Python
- Ускорение обработки данных с %autoawait
- Установка Git и AWS CLI
- Обработка аргументов Python
- Округление чисел с помощью round
- Python: изменяемые и неизменяемые коллекции
- Нахождение максимального значения и его индекса в списке
- Работа с модулем glob в Python
- Python reversed() функция
- Приоритет операций в Python
- Списковый компрехеншен.















