擅长:python、mysql、java
<p>就像@Kasra说的,你不需要使用<code>cmp</code>参数,你可以只使用键,如果你想把第二个元素看作整数(数字),你可以用“”(假设只有<code>,</code>出现在里面)(空字符串)然后转换为int并使用,这样同样长度的数字也可以正确排序。在</p>
<p>示例-</p>
<pre><code>>>> x = [['jis','1,2334'],['hshshau','123'],['sjuaj','3214'],['nbhd','1,841']]
>>> x.sort(key = lambda x: int(x[1].replace(',','')))
>>> x
[['hshshau', '123'], ['nbhd', '1,841'], ['sjuaj', '3214'], ['jis', '1,2334']]
</code></pre>
<p>从<a href="https://docs.python.org/2/library/functions.html#sorted" rel="nofollow">documentation</a>for <code>cmp</code>参数-</p>
<blockquote>
<p>cmp specifies a custom comparison function of two arguments (iterable elements) which should return a negative, zero or positive number</p>
</blockquote>
<p>如上所述,如果两者都相等,cmp函数需要返回0;如果第一个参数大于,则返回正数;如果第一个参数小于第二个参数,则返回负数。在</p>
<p>但是在您的例子中,您返回的是一个布尔值,导致了这个问题。在</p>