title: Why does "[] == False" evaluate to False when "if not []" succeeds?
body: <p>I'm asking this because I know that the pythonic way to check whether a list is empty or not is the following: </p>
  
  <pre><code>my_list = []
  if not my_list:
      print "computer says no"
  else:
      # my_list isn't empty
      print "computer says yes"
  </code></pre>
  
  <p>will print <code>computer says no</code>, etc. So this leads me to identify <code>[]</code> with <code>False</code> truth-values; however, if I try to compare [] and False "directly", I obtain the following: </p>
  
  <pre><code>&gt;&gt;&gt; my_list == False
  False
  &gt;&gt;&gt; my_list is False
  False
  &gt;&gt;&gt; [] == False
  False
  </code></pre>
  
  <p>etc... </p>
  
  <p>What's going on here? I feel like I'm missing something really obvious.</p>