擅长:python、mysql、java
<p>这是一个有趣的问题,因为如果键是另一个不可索引的类型(比如整数),则不会导致错误,这是由一系列微妙的事情造成的:</p>
<ol>
<li>sorted(mydict,…)尝试使用<code>iter(mydict)</code>的等价词迭代字典,它将调用<code>mydict.__iter__()</code></li>
<li>迭代字典会产生它的<strong>键</strong>,实际上<code>iter(mydict)</code>与{<cd4>}相同。在</li>
<li>您的键是字符串,由于字符串是可索引的,<code>itemgetter(1)</code>将处理一个字符串值,从而获得字符串中的第二个字符。在</li>
</ol>
<p>如果任何字符串也有1个字符的长度,那么您所拥有的代码就会因索引器错误而失败,您只是幸运而已。(或者没有,这取决于您如何看待它,因为获得索引器会让您更快地意识到问题。)</p>
<p>如果只需要这些值,您需要做的是:</p>
<pre><code>sorted(mydict.values(), reverse=True)
</code></pre>
<p>如果你想要钥匙成对的话</p>
^{pr2}$