擅长:python、mysql、java
<pre class="lang-py prettyprint-override"><code>sorted(range(-3,4), key=lambda x: x*x)
</code></pre>
<p>试着一步一步地做。
让我们从<code>range</code>开始,这里将提供数字<code>-3</code>,<code>-2</code>,<code>-1</code>,<code>0</code>,<code>1</code>,<code>2</code>和<code>3</code></p>
<p><code>sorted</code>然后在每个项目上运行,并使用<code>key</code>参数中提供的函数。这些项中的每一项都通过<code>lambda</code>的<code>x</code>参数传递。然后<code>lambda</code>处理这个<code>x</code>(表示为<code>range</code>中的数字)并执行一些操作,在您的例子中,它只获取数字<code>x</code>的平方。然后返回平方值,<code>sorted</code>函数使用此返回的平方值以升序进行比较(请记住<code>sorted</code>以升序排列列表,除非指定为<code>reverse=True</code>)</p>
<p><code>key</code>函数的目的是只告诉如何比较所传递的iterable/list中的每个项。但它不会影响将返回的元素的最终列表。它仍将使用已传递的列表。因此,这些值<code>-3</code>、<code>-2</code>、<code>-1</code>、<code>0</code>、<code>1</code>、<code>2</code>和<code>3</code>将是<code>sorted</code>函数返回的列表的元素,仅按照<code>key</code>参数进行排列</p>
<p>希望它有帮助,有意义</p>