Решение задачи
На самом деле в задаче два важных момента на понимание работы python: копирование объектов и изменяемость типов.
По умолчанию копирование поверхностное. При копировании дублируется самый внешний контейнер и заполняется ссылками на те же элементы, что хранятся в исходном контейнере. И все хорошо, пока внутри контейнера не появляется изменяемый тип — список. В этом случае в l1 и l2 будет ссылка на один и тот же список.
Таким образом, в третьей строке добавление элемента изменит только l1, а удаление в четвертой строке повлияет на оба списка l1 и l2.
Самостоятельно посмотреть пример с визуализацией можно в python tutor.
Обратите внимание еще на один пример с визуализацией, если изменить внутренний список на кортеж.
Было также предположение, что сработает исключение из-за странного синтаксиса в 6 строке, но это не так. О такой возможности f-строк у нас был отдельный пост.
Post #184
917
- 👍 11
- ❤ 3
- 🔥 3
- ⚡ 1
- 🌭 1