擅长:python、mysql、java
<p>Python有一个名为<a href="http://docs.python.org/2/library/functions.html#sorted" rel="noreferrer">^{<cd1>}</a>的内置函数,它将从您提供给它的任何iterable中给您一个排序列表(例如list(<code>[1,2,3]</code>);一个dict(<code>{1:2,3:4}</code>),尽管它只返回一个排序的键列表;一个set(<code>{1,2,3,4</code>);或者一个tuple(<code>(1,2,3,4)</code>))。</p>
<pre><code>>>> x = [3,2,1]
>>> sorted(x)
[1, 2, 3]
>>> x
[3, 2, 1]
</code></pre>
<p>列表还有一个<a href="http://docs.python.org/2/library/stdtypes.html#typesseq-mutable" rel="noreferrer">^{<cd6>}</a>方法,该方法将就地执行排序(x.sort()只返回x对象,不返回任何结果)。</p>
<pre><code>>>> x = [3,2,1]
>>> x.sort()
>>> x
[1, 2, 3]
</code></pre>
<p>两者都采用<code>key</code>参数,该参数应该是可调用的(函数/lambda),您可以使用它来更改排序依据。<br/>
例如,要从按值排序的dict中获取<code>(key,value)</code>对的列表,可以使用以下代码:</p>
<pre><code>>>> x = {3:2,2:1,1:5}
>>> sorted(x.items(), key=lambda kv: kv[1]) # Items returns a list of `(key,value)`-pairs
[(2, 1), (3, 2), (1, 5)]
</code></pre>