Курс 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"
- Удаление символа из строки
- Преобразование символов в нижний регистр
- Отладка утечек памяти в Python
- Генераторы списков в Python
- Частичное совпадение ввода
- Поиск частых элементов в списке
- Добавление элемента к кортежу
- Методы работы со строками в Python
- Логирование с Logzero
- Progress с библиотекой tqdm
- Функция eval() в Python
- Работа с getopt
- Создание итератора
- Получение атрибутов и методов класса
- Добавление элемента в список.
- Установка и использование библиотеки google
- Рациональные числа в Python
- Упрощение работы с JSON-данными в Python
- Сортировка с параметром key
- Работа с Event() в threading
- Установка и загрузка Instaloader
- Форматирование данных с помощью pprint
- Переопределение метода len
- Импорт с альтернативным именем
- Структура строк в Python
- Подписка на SelectelNews в Twitter
- Вычисление разности множеств в Python
- Объединение множеств в Python
- Работа с CSV в Python
- Каналы Senior: Python, Java, Frontend, SQL, C++
- Форматирование вывода списков
- Проверка типа данных
- Преобразование числа в восьмеричную строку
- Генераторные выражения и islice.
- Частичное применение функций в Python
- Декораторы в Python
- Добавление элементов в список: append() vs extend()
- Удаление элементов из списка в Python.
- Группы исключений в Python
- Создание графиков в терминале
- Любовь к Python
- Просмотр атрибутов и методов класса















