擅长:python、mysql、java
<blockquote>
<p>Is there a way to do this with one line?</p>
<p>With two lines I guess you could rely on sort stability and first sort by first name and then sort by last name reversed.</p>
</blockquote>
<p>你完全可以用一句话做到:</p>
<pre><code>sorted(sorted(names, key=lambda name: name[1]), key=lambda name: name[0], reverse=True)
</code></pre>
<p>在<a href="https://wiki.python.org/moin/HowTo/Sorting#Sort_Stability_and_Complex_Sorts" rel="nofollow noreferrer">Sorting Mini-HOW TO</a>(<em>“中对这个问题进行两次排序要按降序和升序对学生数据进行排序,请先进行年龄排序,然后使用grade“</em>”再次排序)。在</p>
<hr/>
<p>只有一个<code>sorted</code>和<code>key</code>来做这件事是愚蠢的选择:</p>
^{pr2}$
<hr/>
<p>Python2解决方案包含一个<code>sorted</code>和{<cd4>}而不是{<cd2>}:</p>
<pre><code>sorted(names, lambda a, b: cmp(b[0], a[0]) or cmp(a, b))
</code></pre>