Курс 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"
- Создание и удаление объектов
- Работа с изображениями Pillow
- Кортеж в Python: создание, доступ, изменение
- Удаление ключа из словаря
- Модуль math: основные функции
- Декоратор @override
- F-строки в Python
- Работа с рекламными данными в Pandas
- Удаление элементов из списка в Python
- Замена подстроки
- Получение обратного списка чисел
- Путь к интерпретатору Python
- Пропуск начальных строк с помощью dropwhile()
- Работа с каталогами в Python
- Python UserString — создание подклассов строк
- Функция enumerate в Python
- Поиск самого длинного слова в списке с использованием max()
- Блок else в циклах.
- Работа со временем в Python
- Сравнение def и lambda-функций
- Генераторы в Python
- Генераторные выражения и islice.
- Комментарии в Python
- List Comprehension Tutorial
- Переопределение оператора % для объектов
- Сортировка в Python
- Виртуальные среды в Python
- Метод difference_update() — разность множеств
- Открытие и запись файлов
- Официальный канал Python в Telegram
- Цикл for в Python
- Избегание изменяемых аргументов
- Работа с часовыми поясами в Python
- Различия символов в Python
- Повторение и перенос строки
- Команда %dhist — список посещенных каталогов
- Цикл for в Python
- Метод setdefault() в Python
- Поиск самого частого элемента
- Установка и обучение ChatterBot
- Преобразование документов в PDF с помощью Spire.Office
- Игра «Угадывание чисел»
- Настройка Cron
- Списковое включение в Python
- Списки в Python: основы
- Операции с числами в Python















