title: Why deepcopy of list of integers returns the same integers in memory?
body: <p>I understand the differences between shallow copy and deep copy as I have learnt in class. However the following doesn't make sense</p>
  
  <pre><code>import copy
  
  a = [1, 2, 3, 4, 5] 
  
  b = copy.deepcopy(a)
  
  print(a is b)
  print(a[0] is b[0])
  ----------------------------
  ~Output~
  &gt;False
  &gt;True
  ----------------------------
  </code></pre>
  
  <p>Shouldn't <code>print(a[0] is b[0])</code> evaluate to False as the objects and their constituent elements are being recreated at a different memory location in a deep copy? I was just testing this out as we had discussed this in class yet it doesn't seem to work.</p>