Создание списка и его копирование при помощи copy()

Создайте список и вызовите original.copy(). Получится новый внешний список с теми же элементами; вложенные объекты копируются по ссылке.

Короткий ответ

Что ответить на собеседовании

Создайте список и вызовите original.copy(). Получится новый внешний список с теми же элементами; вложенные объекты копируются по ссылке.

Подробный разбор

Ответ с пояснениями

Условие

Необходимо написать программу, в которой создаётся список, а затем делается его копия с использованием метода copy().

Ответ

Создайте список и вызовите original.copy(). Получится новый внешний список с теми же элементами; вложенные объекты копируются по ссылке.

original = [1, 2, 3]
copy_list = original.copy()
copy_list.append(4)

assert original == [1, 2, 3]
assert copy_list == [1, 2, 3, 4]
assert copy_list is not original

Это поверхностное копирование. Если элемент исходного списка сам является списком, оба контейнера будут ссылаться на него, и изменение этого вложенного объекта отразится в обоих местах. Для независимого копирования всей вложенной структуры может потребоваться copy.deepcopy.

Присваивание copy_list = original не создаёт копию вообще. Время и память list.copy() — O(n) по числу элементов.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее