Pythonでの参照は、ポインター、アドレス、値の受け渡し、参照の受け渡しについて知っていることをすべて忘れて、ラベルとオブジェクト、または名前とオブジェクトと同じように考えると、はるかに理解しやすくなります。
これに従ってください:
a=5
b=a
a=3
print b #this prints 5
ラベル「a」を5に付け、次に「b」を同じオブジェクトに付けます。「a」は5になります。したがって、「a」は削除されて3になります。「b」はまだ5にあり、「a」を移動します。他の何かに影響を与えることはありません。
spy = [0,0,7]
あなたは「スパイ」という名前をリストに載せています[0、0、7]
agent = spy
同じリストに「エージェント」という名前があります[0、0、7]
spy[2]=8
print agent #this prints [0,0,8]
リストのインデックス2ラベルを8に配置します。エージェントとスパイはどちらも同じリストの名前であるため、印刷すると両方に変化が見られます。
spy = [0,0,7]
リストに「スパイ」という名前があります[0、0、7]
agent = spy
同じリストに「エージェント」という名前があります[0、0、7]
spy = "hello"
これで、リストから「spy」という名前が削除され、文字列「hello」が追加されました。リストにはまだ「エージェント」というラベルが割り当てられています。
print agent #this prints [0,0,7]
とった?