デスティネーションを配列要素にしようとすると、アンパックの動作が変わるのはなぜですか?
>>> def foobar(): return (1,2)
>>> a,b = foobar()
>>> (a,b)
(1, 2)
>>> a = b = [0, 0] # Make a and b lists
>>> a[0], b[0] = foobar()
>>> (a, b)
([2, 0], [2, 0])
最初のケースでは、期待どおりの動作が得られます。2 番目のケースでは、両方の割り当てで、返されたタプルの最後の値 (つまり '2') が使用されます。なんで?