擅长:python、mysql、java
<p>给出:</p>
<pre><code>mycrds = [[0.0, 0.5, 0.9],
[0.4, 0.6, 0.8],
[0.2, 0.3, 0.1]]
</code></pre>
<p>如果这为您提供了所需的排序顺序:</p>
<pre><code>>>> sorted(mycrds, key=lambda sl: (sl[2],sl[1],sl[0]))
[[0.2, 0.3, 0.1], [0.4, 0.6, 0.8], [0.0, 0.5, 0.9]]
</code></pre>
<p>然后您可以得到每个列表项的原始索引,如下所示:</p>
<pre><code>>>> sorted(range(len(mycrds)), key=lambda i: (mycrds[i][2],mycrds[i][1],mycrds[i][0]))
[2, 1, 0]
</code></pre>
<p>因此,您所做的就是对<code>0..len(your_list)</code>中的一个范围进行排序,并使用该索引<code>i</code>引用列表中的元素并以相同的方式形成排序元组。这与对基础列表进行排序的复杂性相同。你知道吗</p>