Курс 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
- Глубокое копирование объектов
- Метод rlshift для битового сдвига
- Генератор списка с условием if
- Функция __init__ в Python
- Декораторы в Python
- Измерение времени выполнения с помощью time
- Глобальные переменные в Python
- Списковое включение в Python
- Оператор умножения для вектора
- Функция zip() в Python
- Операторы объединения в Python 3.9
- Python 3.12: переиспользование кавычек
- Работа с множествами в Python
- Проверка индексов коллекции
- Комплексные числа в Python
- Генераторы в Python
- Удаление элементов из списка
- Фильтрация данных в Python.
- Метод __float__ в Python
- Defaultdict в Python
- Вложенные генераторы в Python
- Создание словарей и множеств в Python.
- Создание функций с произвольным количеством аргументов
- Работа с контекстными переменными
- split() без разделителя
- Разделение функций на этапы
- Создание новых списков в Python
- Создание графики с черепахой
- Декораторы в Python
- Управление фоновыми задачами в Python
- Перетасовка списков в Python
- Работа с argparse
- Изменение IP-адреса в Python
- Функция print() — вывод информации
- Создание GUI с Tkinter: Entry
- Преобразование в float
- Проверка версии Python
- Преобразование чисел в слова
- Методы в Python
- Разбиение текста в Python
- Структурирование данных с Pydantic
- Открытие и запись файлов
- Форматирование данных с помощью pprint















