Как изменить исходный список, а не его копию

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 после редактирования. Это меняет привязку переменной, а не прежний объект для других владельцев. Копирование здесь поверхностное: вложенные списки всё ещё могут быть общими, что важно для более сложных структур.

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

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

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

Подробнее