title: Why do two identical lists have a different memory footprint?
body: <p>I created two lists <code>l1</code> and <code>l2</code>, but each one with a different creation method:</p>
  
  <pre><code>import sys
  
  l1 = [None] * 10
  l2 = [None for _ in range(10)]
  
  print('Size of l1 =', sys.getsizeof(l1))
  print('Size of l2 =', sys.getsizeof(l2))
  </code></pre>
  
  <p>But the output surprised me:</p>
  
  <pre><code>Size of l1 = 144
  Size of l2 = 192
  </code></pre>
  
  <p>The list created with a list comprehension is a bigger size in memory, but the two lists are identical in Python otherwise.</p>
  
  <p>Why is that? Is this some CPython internal thing, or some other explanation?</p>