Back

Explore Courses Blog Tutorials Interview Questions
0 votes
1 view
in Python by (47.6k points)

Can someone please explain this to me? This doesn't make any sense to me.

I copy a dictionary into another and edit the second and both are changed. Why is this happening?

>>> dict1 = {"key1": "value1", "key2": "value2"} 

>>> dict2 = dict1 

>>> dict2 

{'key2': 'value2', 'key1': 'value1'}

>>> dict2["key2"] = "WHY?!"

>>> dict1 

{'key2': 'WHY?!', 'key1': 'value1'}

1 Answer

0 votes
by (106k points)

When you set dict2 = dict1, you are making them refer to the same exact dict object because Python never implicitly copies objects. So when you mutate it, all references to it keep referring to the object in its current state.

To copy the dictionary you need to do it explicitly like as follows:-

dict2 = dict(dict1)

or

dict2 = dict1.copy()

Welcome to Intellipaat Community. Get your technical queries answered by top developers!

28.4k questions

29.7k answers

500 comments

94k users

Browse Categories

...