If you have an object and you wish to copy it. There are two ways of copying it - Shallow and Deep.
The normal copy that we generally use is called Shallow copying which basically creates a new variable and stores the reference of the copied item. It's not a clone or not the real object. Hence any change made to the copy version of an object will be reflected to the original object.
Import copy
list = [1,2,3,4]
list1 = copy.copy(list)
Deep copy, on the other hand, sends a copy of the copied version of the actual object. Hence any changes made to the copy will not be reflected in the original.
import copy
list = [1,2,3,4]
list2 = copy.deepcopy(list)