Курс 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
- Сортировка HTML-элементов
- discard() — удаление элемента из множества
- Генерация тестовых данных с factory_boy
- Логический оператор «and» в Python
- Оператор is в Python
- Разделение строки в Python
- Обмен значений переменных в Python
- Импорт и использование модулей в Python
- Работа с CSV файлами в Python
- Подсчет элементов в списке с Counter
- Особенности запятых в Python
- Создание итератора
- Отслеживание прогресса с tqdm
- Управление виртуальными окружениями в Python
- Хеши в Python
- Enum в Python
- Обязательные аргументы в Python
- Библиотека sh: использование команд bash в Python
- Избегайте изменяемых аргументов
- Фильтрация входных данных в Python
- Именованные аргументы в Python
- Отношения подклассов в Python
- Работа со строками в Python.
- Метод enumerate() в Python
- Округление дробей в Python
- Многострочные строки в Python
- Переопределение метода __pow__
- Генератор списка с условием if
- Вывод сложных структур данных с помощью pprint
- Настройка вывода в Numpy
- Обработка исключений
- Solidity для DeFi Ethereum
- Функции-генераторы в Python
- Оператор continue в Python
- Просмотр файла в Jupyter Noteboo
- Многоточие в Python
- Работа с часовыми поясами в Python.
- Функция format() в Python
- Поиск частого элемента
- Управление контекстом выполнения
- Список переменных с %who
- Атрибуты класса и экземпляра
- Безопасные SQL-запросы в Python 3.11















