Создайте список и вызовите original.copy(). Получится новый внешний список с теми же элементами; вложенные объекты копируются по ссылке.
Создание списка и его копирование при помощи 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) по числу элементов.