辞書をコピーしてコピーのみを編集する方法 質問する

辞書をコピーしてコピーのみを編集する方法 質問する

設定しました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()

おすすめ記事