4

辞書の浅いコピーを行うと、実際には参照のコピーが作成されることを理解しています。だから私がこれを行うと:

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'] は変更されませんが、リストは引き続き同じ参照を共有します。私の質問は、文字列とリストの違いは何ですか? この背後にあるメカニズムは何ですか?

4

2 に答える 2