title: In Python, why is list(None) an error but [None] is not?
body: <p>Passing <code>None</code> to Python's <code>list</code> constructor is a <code>TypeError</code>:</p>
  
  <pre><code>&gt;&gt;&gt; l = list(None)
  Traceback (most recent call last):
    File "&lt;stdin&gt;", line 1, in &lt;module&gt;
  TypeError: 'NoneType' object is not iterable
  </code></pre>
  
  <p>But using brackets to instantiate a <code>list</code> is fine; using <code>None</code> with the built-in functions is also fine:</p>
  
  <pre><code>&gt;&gt;&gt; l = [None]
  &gt;&gt;&gt; l.append(None)
  &gt;&gt;&gt; l
  [None, None]
  </code></pre>
  
  <p>My understanding was that <code>list()</code> and <code>[]</code> were equivalent ways of creating a new <code>list</code>. What am I missing?</p>