The answer here says:
Shallow copies duplicate as little as possible. A shallow copy of a collection is a copy of the collection structure, not the elements. With a shallow copy, two collections now share the individual elements.
Deep copies duplicate everything. A deep copy of a collection is two collections with all of the elements in the original collection duplicated.
consider this following piece in python 2.7.13
import copy
a = [1234567,12345678,(123456789,1234567890)]
a_d = copy.deepcopy(a)
a[1] is a_d[1] #True
a[2] is a_d[2] #True
a[2] is a_d[2][1] #True
Why aren't the individual objects duplicated here?