Потому что b=a[:] копировало список a, а список в b остался от а, это можно проверить выполнив такой код a=[0,[1000,10000]] b=a[:] b[1]=a[1][:] a[1][1]=5 print(b) В нем мы тоже изменяем a[1][1], но меняем b[1] на новый список из a
Спасибо большое за помощь! Правда, понятнее не стало) Видимо, я упускаю какое-то ключевое свойство срезов в данном контексте...
Ну есть копирование которое ссылается на объект, а есть которое просто копирует, срез - второе
Т.е. при срезе [1,[2,3]] внутренний список копируется ссылкой на этот список, а сам внешний список копируется чисто значениями, я правильно понимаю? Поэтому замена данных списка работает только для внутреннего?
Ну да, в b [1, ссылка на [1,2]], ведь и в a [1, ссылка на [1,2]]
Сложно, блин) Надо разобраться с обращением к данным в памяти. Ещё раз спасибо!)
Обсуждают сегодня