Why does "[] == False" evaluate to False when "if not []" succeeds?
<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>
