擅长:python、mysql、java
<p>您提供的代码有几个问题:</p>
<ol>
<li><p>您发布的代码不会抛出任何错误(我认为在您的实际代码中,您可能有<code>for x in coocurences.values</code>没有任何括号,这将抛出错误)</p></li>
<li><p><code>x</code>只是字典中值的<em>副本</em>。更改<code>x</code>不会更改dict中的值。请参阅<a href="https://stackoverflow.com/questions/19290762/cant-modify-list-elements-in-a-loop-python?noredirect=1&lq=1">Can't modify list elements in a loop Python
</a></p></li>
<li>如果在循环期间更改值,则计算的总和也将更改。每隔一周计算一次和的效率也比较低,所以最好在循环之前计算</李>
</ol>
<p>总而言之:</p>
<pre><code>total = sum(coocurences.values())
for k,v in coocurences.items():
coocurences[k] = v/total
</code></pre>
<p>更好的是,使用听写理解:</p>
<pre><code>total = sum(coocurences.values())
answer = {k: v/total for k,v in coocurences.items()}
</code></pre>