Copy создаёт отдельный список, поэтому присваивание b[0] не меняет a. Для изменения оригинала присвойте a[0]=2 либо осознанно используйте ссылку b=a.
Как изменить исходный список, а не его копию
Copy создаёт отдельный список, поэтому присваивание b[0] не меняет a. Для изменения оригинала присвойте a[0]=2 либо осознанно используйте ссылку b=a.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
В Python: a=[1]; b=a.copy(); b[0]=2; print(a[0]). Почему выводится 1 и как получить 2, если намерение — обновить исходный список?
Ответ
Copy создаёт отдельный список, поэтому присваивание b[0] не меняет a. Для изменения оригинала присвойте a[0]=2 либо осознанно используйте ссылку b=a.
Если нужна независимая копия и последующая замена результата, можно сделать a=b после редактирования. Это меняет привязку переменной, а не прежний объект для других владельцев. Копирование здесь поверхностное: вложенные списки всё ещё могут быть общими, что важно для более сложных структур.