Примите во внимание следующее:
a=[0,1] #our starting value
a=[a,1] #=> [[0,1],1] as expected
Я ожидаю, что следующий результат даст тот же результат:
a=[0,1] #same starting place
a[0]=a #should make a the same thing as it was above, right?
a #=> [[...],1] !!!
В первом примере второе присваивание относится к значению a
до того, как было выполнено назначение. Во втором примере второе присваивание выполняет рекурсивное присваивание. Мне кажется, что это другое поведение. Согласовано ли такое поведение на самом деле? Если да, то может кто-нибудь, пожалуйста, объясните, почему?