私の質問は、厳密なプログラミングの質問というよりは理解に関する質問です。つまり、実際には値を格納するのではなく、その値が格納されているメモリ内の場所を指します。私が理解できないのは、次の2つのケースがどのように異なるかです:
>>> a = 3
>>> b = a
>>> a
3
>>> b
3
>>>b = 4
>>> b
4
>>> a
3
「b」に割り当てられた新しい値は、「a」が指す値を変更しません。反対に:
>>> a = [1,2,3]
>>> b = a
>>> a
[1,2,3]
>>> b
[1,2,3]
>>> b.append(4)
>>> b
[1,2,3,4]
>>> a
[1,2,3,4]
b に割り当てられた新しい値により、a が指す値が変更されました