<p>我想返回已排序列表的'<strong><em>reverse</em></strong>'索引。我的意思是:我有一个未排序的列表<code>U</code>,我通过<code>S=sorted(U)</code>对它进行排序。现在,我可以得到这样的排序索引<code>U(idx)=S</code>-但是我想要<code>S(Ridx) = U</code>。在</p>
<p>这里有一个小例子:</p>
<pre><code>U=[5,2,3,1,4]
S=sorted(U)
idx = [U.index(S[i]) for i in range(len(U))]
>>> idx
[3, 1, 2, 4, 0]
Ridx = [S.index(U[i]) for i in range(len(U))]
>>> Ridx
[4, 1, 2, 0, 3]
>>>[U[idx[i]] for i in range(len(U))] == S
True
>>>[S[Ridx[i]] for i in range(len(U))] == U
True
</code></pre>
<p>我需要的是一个有效的方法来获得Ridx。在</p>
<p>谢谢!在</p>
<hr/>
<p>编辑:</p>
<p>好吧!我对这两个解决方案(@Jon Clements和@Whatang)做了一个小小的速度测试,回答了这个问题。在</p>
<p>剧本:</p>
^{pr2}$
<p>结果是:</p>
<pre><code>True
0:02:45.278000
===============
True
0:06:48.889000
</code></pre>
<p>感谢你们所有人的快速和有意义的帮助!在</p>