
Copy Method –
The copy method returns a shallow copy of a dictionary. This does not modify the original dictionary.
Syntax of copy –
dict.copy()
Let’s say we have a dictionary which contains some information about a person.
In [1]: person1 = {'Name':'Emma', 'Age': 25, 'Location': 'California'}
Now, we want to copy this information into another dictionary. For this we can use the dictionary copy method.
In [2]: person2 = person1.copy()
In [3]: person2
Out[3]: {'Name': 'Emma', 'Age': 25, 'Location': 'California'}
Difference between Copy method vs = operator
You can also copy a dictionary using the equal operator but there is a big difference between the two.
Let’s first look at copying a dictionary using the equal operator.
In [4]: person1 = {'Name':'Emma', 'Age': 25, 'Location': 'California'}
In [5]: person2 = person1
In [6]: person2
Out[6]: {'Name': 'Emma', 'Age': 25, 'Location': 'California'}
Here, we copied a dictionary using the equal operator. Now if I change the copied dictionary the original dictionary will be also changed.
In [7]: person2.clear()
In [8]: person2
Out[8]: {}
In [9]: person1
Out[9]: {}
Here, I removed all the key-value pairs from the copied dictionary which also cleared all the key-value pairs of the original dictionary which you may not want.
But if you copy a dictionary using the copy() method and then change the copied dictionary, it won’t effect the original dictionary.
In [10]: person1 = {'Name':'Emma', 'Age': 25, 'Location': 'California'}
In [11]: person2 = person1.copy()
In [12]: person2.clear()
In [13]: person2
Out[13]: {}
In [14]: person1
Out[14]: {'Name': 'Emma', 'Age': 25, 'Location': 'California'}