Курс 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
- Экспорт функций в Python
- Библиотека Rich: форматирование текста
- Наследование в программировании
- Преобразование текста в нижний регистр
- Вычисление натуральных логарифмов в NumPy
- Генерация фальшивых данных с Faker
- Итерация по копии коллекции
- Оптимизация создания строк
- Создание тестовых данных с Faker
- Поиск кода
- Функция reduce() в Python
- Переопределение метода xor в Python
- Преобразование текста в речь с Python
- Профилирование с Pandas
- Множественные конструкторы в Python
- Определение объема памяти объекта
- Печать календаря в Python
- Метод join() для объединения элементов строки
- Работа с контекстными переменными
- F-строки в Python 3.8
- Модуль pprint: улучшение вывода данных
- Работа с zip-архивами в Python
- Округление в Python
- Фильтрация входных данных в Python
- Безопасные SQL-запросы в Python 3.11
- Обработка аргументов Python
- Присоединение элементов коллекции
- Обработка исключений
- JSON-esque в Python
- Создание вложенного генератора
- Python и Юникод: работа с цифрами
- Отправка POST запроса на сервер.
- Python defaultdict добавление ключа
- Удаление и повторная вставка ключа в OrderedDict
- Передача параметров в Python
- None в Python: использование и особенности
- Операторы сравнения в Python
- Построение графиков в терминале с bashplotlib
- Просмотр внешнего файла в Python
- Освоение Python
- Работа с областями видимости переменных
- Замена элементов в списке с помощью генераторов списков
- Тип данных TypeVarTuple
- Форматирование даты с strftime()
- Установка Home Assistant
- Создание и использование модулей в Python















