擅长:python、mysql、java
<p>在两个iterables*(至少对于字符串,列出ans元组)上使用比较运算符<code><</code>、<code><=</code>、<code>></code>、<code>>=</code>时,Python不会比较其长度,而是按字典顺序进行比较。这意味着它将一个iterable的每个项与处于相同位置的另一个iterable的项进行比较。因此,在您的示例中,Python比较:</p>
<pre><code>'computador' > 'computador' (false since they are the same)
'caderno' > 'celular' (false because the letter 'a' of caderno comes first than the letter 'e' of celular)
'lapiseira' > 'café' (true because the 'l' of lapiseira is greater of the 'c' of café)
'caneta' > 'água' (false because the 'c' of caneta is not greater than the 'á' (note the accent mark) of água)
</code></pre>
<p>Python实际上只进行比较,直到它不再是真理,所以它在<code>'computador' > 'computador'</code>中停止比较。我只是用其中的四个来说明它是如何工作的</p>
<p>因此,对于比较<code>a > b</code>,它返回<code>False</code></p>
<hr/>
<p><strong>(*)</strong>并非每个iterable都支持使用上述运算符进行比较。它们必须实现才能像那样使用。Python允许您在默认情况下(据我所知)仅在字符串、元组和列表中使用此行为</p>
<p>例如,对于<code>set</code>实例,它有一个<a href="https://stackoverflow.com/a/49677165/7303434">completely different behavior</a></p>