擅长:python、mysql、java
<p>也许使用常规函数更容易理解</p>
<pre><code>def cmp_function(x, y):
return cmp(len(x), len(y))
a = ['green egg','snail and lettuce','bacon','dorse naga','rutabaga ripple','cheese']
a.sort(cmp=cmp_function)
print a
</code></pre>
<p>lambda函数并没有这里的正则函数好。更难记录和测试。在</p>
<p>Aside:<code>cmp</code>在Python2中不推荐使用,因此您应该改用key函数。在</p>
^{pr2}$
<p>正如@Roman的回答一样,这个<code>key_function</code>只是<code>len</code>的包装,所以您可以写</p>
<pre><code>a = ['green egg','snail and lettuce','bacon','dorse naga','rutabaga ripple','cheese']
a.sort(key=len)
print a
</code></pre>
<p>作为练习,您可以向<code>cmp_function</code>和<code>key_function</code>添加一个print语句,看看每个语句被调用了多少次。将其与<code>a</code>中的项数进行比较</p>