Why does comparing a list and a tuple always return False
<p>The title is it, really. Very unexpected. I'm wondering why this is the case. I'd have expected (4,3,2) == [4,3,2] to be True, but it isn't. If the language regarded them as not compatible types for comparison, it would throw an exception.</p>

<pre><code>&gt;&gt;&gt; (4,3,2) == [4,3,2]
False
&gt;&gt;&gt; (4,3,2) == tuple([4,3,2])
True
&gt;&gt;&gt; () == []
False
</code></pre>

<p>I guess the moral is that when comparing multiple values, explicitly convert to list or to tuple!</p>