Курс Python → Глубокое копирование объектов
Глубокое копирование в Python — это процесс создания полной копии объекта или списка, включая все вложенные объекты, с уникальным адресом памяти. В отличие от поверхностного копирования, при котором создается новый объект, но вложенные объекты остаются ссылками на оригинал, глубокое копирование создает полностью независимую копию.
Для выполнения глубокого копирования в Python можно использовать модуль copy и его метод deepcopy. Этот метод рекурсивно копирует все объекты, на которые ссылается исходный объект, в новую копию. Таким образом, изменения, внесенные в новую копию, не повлияют на оригинал.
import copy
original_list = [1, 2, [3, 4]]
deep_copy_list = copy.deepcopy(original_list)
deep_copy_list[2].append(5)
print(original_list) # Output: [1, 2, [3, 4]]
print(deep_copy_list) # Output: [1, 2, [3, 4, 5]]
В приведенном примере создается глубокая копия списка original_list с вложенным списком. После добавления элемента во вложенный список новая копия (deep_copy_list) отличается от оригинала (original_list), что подтверждает успешное выполнение глубокого копирования.
Глубокое копирование важно при работе с составными объектами, чтобы избежать неожиданных изменений в оригинале при модификации копии. Этот подход обеспечивает безопасность данных и предотвращает ошибки, связанные с переиспользованием ссылок на объекты.
Другие уроки курса "Python"
- Чтение и запись TOML-конфигов
- Подсчет элементов с помощью Counter
- Лямбда-функции в defaultdict
- Хешируемые ключи в Python
- Оператор «моржа» (Walrus Operator)
- Преобразование PowerPoint в PDF.
- Создание директории в Python
- Работа с CSV файлами
- Навыки Python: строки, типы данных
- Активация Matplotlib в Jupyter
- Именованные кортежи в Python
- Экспорт данных с помощью writefile
- Логирование с Logzero
- Python defaultdict добавление ключа
- Вложенные генераторы в Python
- Использование type hints
- Передача неизвестных аргументов в Python.
- Расширение операции побитового «и» в Python
- Использование эмодзи в Python
- Списковое включение в Python
- Progress с библиотекой tqdm
- Создание именованных кортежей в Python
- Создание списков в Python
- Разделение функций на этапы
- Создание копии списка в Python
- Работа с IP-адресами в Python
- Объединение списков с использованием itertools.chain
- Добавление вложенных списков
- Отправка HTTP-запросов с User-Agent
- Работа с WindowsPath()
- Проверка ввода с помощью isdigit
- Работа с дробями в Python
- Метод lt для сортировки объектов
- Добавление Progressbar в Python
- Конкатенация строковых литералов
- Бесконечные списки в Python
- Оператор is в Python
- Работа с JSON в Python
- Печать календаря в Python
- Удаление дубликатов из списка с помощью dict.fromkeys
- Метод rmatmul для пользовательских матриц
- Роль ключевого слова self
- PUT запрос для обновления данных
- Работа с контекстными менеджерами















