Курс 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"
- Преобразование букв в нижний регистр
- Библиотека sh: использование команд bash в Python
- Применение функции к элементам списка
- Операции с матрицами в Python
- Форматирование строк в Python
- Кортеж в Python: создание и использование
- Особенности запятых в Python
- Работа с IP-адресами в Python
- Удаление элементов из списка в Python
- Повторение элементов в Python
- Профилирование с cProfile
- Метод count() для списков
- Подписка на SelectelNews в Twitter
- Оператор объединения словарей
- Операторы увеличения и уменьшения в Python
- Особенности ключей словаря в Python
- Разделение строки на пары ключ-значение.
- Декораторы в Python
- Многопоточность в Python
- Сериализация объектов в Python
- Работа со слайсами
- Работа с argparse
- Создание и инициализация объектов
- Управление импортом в Python
- Импорт объектов из модулей
- Равенство и идентичность в Python
- globals и locals
- Реверс строки и списка в Python.
- Преобразование регистра символов
- Прокачанный трейсинг ошибок
- Bootle — простой веб-фреймворк
- Использование defaultdict в Python
- Запрос DELETE с библиотекой requests
- Обмен значений переменных в Python
- Поиск индекса элемента в списке
- Defaultdict в Python
- Разделение строки с помощью re.split()
- Проблемы с dict в Python
- Метод hash в Python
- Подсчет элементов в Python
- Разделение строки с помощью split()
- Тестирование с unittest
- Многопроцессорное программирование в Python
- Нахождение хеша для бесконечности и NaN в Python
- Модуль math: основные функции
- Настройка вывода NumPy
- Объединение списков в Python.
- Создание виртуальной среды















