擅长:python、mysql、java
<p>让我们把这个问题分成几个部分。您确实想对列表<code>a.items()</code>排序。所以:</p>
<pre><code>>>> to_sort = a.items()
>>> to_sort
[('q', {3: [4, 2, 7]}), ('a', {1: [5, 3, 11]}), ('e', {23: [11, 45, 2]})]
</code></pre>
<p>现在,对于列表中的每个元素,都有一个值为<code>'q'</code>等)的元组和一个字典。假设每个字典只包含一个键,您希望使用每个字典值的index-1元素作为主键。所以,第一个元素的键应该是:<code>to_sort[0][1].values()[0][1]</code>:<code>to_sort[0][1]</code>给你字典{<cd5>},<code>.values()</code>给你一个列表{<cd7>},而{<cd8>}给你{<cd9>}。辅助排序键只是<code>to_sort[0]</code>。在</p>
<p>所以我们得到:</p>
^{pr2}$
<p>我们快到了。现在只需告诉sort您想要反向输出:</p>
<pre><code>>>> sorted(to_sort, key=lambda x: (x[1].values()[0][1], x[0]), reverse=True)
[('e', {23: [11, 45, 2]}), ('a', {1: [5, 3, 11]}), ('q', {3: [4, 2, 7]})]
</code></pre>
<p>这是你想要的吗?在</p>
<p>如果您想要一条直线,您可以:</p>
<pre><code>>>> sorted(a.items(), key=lambda x: (x[1].values()[0][1], x[0]), reverse=True)
</code></pre>