擅长:python、mysql、java
<p>正如Sven所解释的,您遇到的错误是由于<code>defaultdict</code>的工作方式造成的。在<code>defaultdict</code>中执行查找时,如果密钥不存在,则检索默认值(因此是名称)并将密钥添加到字典(使用默认值)。这是你的<code>RuntimeError</code>的来源。</p>
<p>您可以执行以下操作来避免此问题:</p>
<pre><code>for k, v in somehash.items():
if somehash[maxkey] > v:
maxkey = k
</code></pre>
<p>主要的区别在于<code>somehash.items()</code>返回一个(键,值)元组的列表,因此实际上是在该列表上迭代,而不是<code>somehash</code>本身。这同样适用于<code>.keys()</code>与<code>.iterkeys()</code>。</p>