擅长:python、mysql、java
<p><code>sorted</code>的<code>key</code>参数是一个<em>可调用的</em>(例如函数),它接受一个参数。在</p>
<p>默认情况下,<code>sorted</code>通过相互比较对值进行排序。例如:</p>
<pre><code>sorted([2, 3, 1]) # returns [1, 2, 3]
</code></pre>
<p>这是因为1<;2<;3。在</p>
<p>另一方面,如果应该使用不同的值进行比较,可以用<code>key</code>来定义。例如,要按长度对字符串排序,可以执行以下操作:</p>
^{pr2}$
<p>这是因为<code>string_length('jk') < string_length('abcd') < string_length('efghi')</code>。在</p>
<p>但是,您可以传递任何其他<em>可调用的</em>,而不是函数。在您的示例中,这是<code>dict1.get</code>,因此对于dict中的每个键,<code>dict1.get(key)</code>将被执行,其结果将用于比较。在</p>
<pre><code>dict1 = {'a':3, 'b':1, 'c':2}
sorted(dict1, key=dict1.get) # returns ['b', 'c', 'a']
</code></pre>
<p>这是因为<code>dict1.get('b') < dict1.get('c') < dict1.get('a')</code>。在</p>