Like other programming language python does not support = operation to copy an objects,instead it creates a new variable that shares the reference of the original object.Fortunately we have copy module in python copy an object to a variable.Their are two ways to use copy module in python.They are Shallow Copy and Deep Copy .
Deep copy in python
Deep copy is one of the way copy module in python,in Deep copy process a copy of object is copied in other object.so whatever the change we make on the Deep copy object it will not reflect in the original object.Deep copy copies all values recursively from source to target object. First constructing a new collection object and then recursively populating it with copies of the child objects found in the original
Deep copy example
import copy # initializing item1 item1 = [7, 12, [9,50], 14] # using deep copy to copy item1 item2 = copy.deepcopy(item1 ) # original elements of item1 print ("Orignal item1 ") for i in range(0,len(item1)): print (item1[i],end=" ") # adding and element to item2 item2[2][0] = 69 print("\r") print ("Deep copy result item2") for i in range(0,len( item2 )): print (item2[i],end=" ") print("\r") print ("After copying Deep copy Orignal item1 ") for i in range(0,len( item1)): print (item1[i],end=" ")
shallow copy example
shallow copy is a way in which a reference of object is copied in other object. so any changes made to a shallow copy of object do reflect in the original object.shallow copy is done with “copy()” function.
import copy # initializing item1 item1 = [7, 12, [9,50], 14] # using deep copy to copy item1 item2 = copy.copy(item1 ) # original elements of item1 print ("Orignal item1 ") for i in range(0,len(item1)): print (item1[i],end=" ") # adding and element to item2 item2[2][0] = 69 print("\r") print ("Shallow copy result item2") for i in range(0,len( item2 )): print (item2[i],end=" ") print("\r") print ("After copying Shallow copy Orignal item1 ") for i in range(0,len( item1)): print (item1[i],end=" ")