擅长:python、mysql、java
<p>首先,您的<code>L</code>和<code>K</code>不是列表,而是元组。您的代码可能出现错误,因为您试图修改元组中的值</p>
<p>您可以使用<code>map</code>函数将每个元素映射到小于它的数字量</p>
<pre><code>result = list(map(lambda item: sum([number < item for number in L]), L))
</code></pre>
<p>知道当计算<code>True</code>和<code>False</code>之和时,<code>True</code>与1相同,而<code>False</code>与0相同。通过计算新列表的总和,其中每个元素都是<code>True</code>/<code>False</code>,这取决于项是否大于数字,我们基本上是在计算列表中有多少<code>True</code>,这应该是您要问的</p>
<hr/>
<p>我的道歉,没有看到你需要的部分,你的编号按等级排序。您可以使用<code>key</code>参数对其进行排序</p>
<pre><code>L = [(item, sum([number < item for number in L])) for item in L]
L.sort(key=lambda item: item[1])
</code></pre>
<p>其中<code>L</code>中的每个元素都转换为元组(原始的_值,其_秩)</p>