設定しましたdict2 = dict1
。編集するとdict2
、オリジナルdict1
も変わるこれを避けるにはどうしたらいいでしょうか?
>>> dict1 = {"key1": "value1", "key2": "value2"}
>>> dict2 = dict1
>>> dict2["key2"] = "WHY?!"
>>> dict1
{'key2': 'WHY?!', 'key1': 'value1'}
ベストアンサー1
Python はオブジェクトを暗黙的にコピーすることはありません。 を設定するとdict2 = dict1
、それらはまったく同じ dict オブジェクトを参照するようになります。そのため、オブジェクトを変更すると、そのオブジェクトへのすべての参照は、現在の状態のオブジェクトを参照し続けます。
辞書をコピーしたい場合(稀ですが)、明示的にコピーする必要があります。
dict2 = dict(dict1)
または
dict2 = dict1.copy()