How to copy a dictionary and only edit the copy
dictionary, python, reference
Solution
Python never implicitly copies objects. When you set `dict2 = dict1`, you are making them refer to the same exact dict object, so when you mutate it, all references to it keep referring to the object in its current state.
If you want to copy the dict (which is rare), you have to do so explicitly with
dict2 = dict(dict1)
or
dict2 = dict1.copy()
Problem
I set `dict2 = dict1`. When I edit `dict2`, the original `dict1` also changes. Why? ``` >>> dict1 = {"key1": "value1", "key2": "value2"} >>> dict2 = dict1 >>> dict2["key2"] = "WHY?!" >>> dict1 {'key2': 'WHY?!', 'key1': 'value1'} ```