辞書の浅いコピーを行うと、実際には参照のコピーが作成されることを理解しています。だから私がこれを行うと:
x={'key':['a','b','c']}
y=x.copy()
したがって、リスト ['a','b','c'] の参照が y にコピーされます。リストを変更するたびに (x['key'].remove('a')
たとえば)、dict x と y の両方が変更されます。この部分はわかります。しかし、以下のような状況を考えると:
x={'user':'admin','key':['a','b','c']}
y=x.copy()
するとy['user']='guest'
、 x['user'] は変更されませんが、リストは引き続き同じ参照を共有します。私の質問は、文字列とリストの違いは何ですか? この背後にあるメカニズムは何ですか?