擅长:python、mysql、java
<p>你做错了什么:</p>
<ol>
<li><code>key</code>和{<cd2>}已经包含来自
字典。没有必要再去查字典了
<code>guest[key]</code>。在</li>
<li><code>numPersons</code>应该在循环的每次迭代中递增1,
不是按<code>len(guest[key])</code>所做的值的长度。在</li>
<li><code>total</code>应累计值的总和,而不是赋值
对每个人,即<code>total += float(value)</code>。在</li>
</ol>
<p>更正这3项会产生如下代码:</p>
<pre><code>guest= {"Mary":"15", "Joe":"13", "Dustin":"12"}
def CalcAverage(guest):
total = 0.0
numPersons = 0
for key, value in guest.items():
numPersons += 1
total += float(value)
return total / numPersons
>>> CalcAverage(guest)
13.333333333333334
</code></pre>
<p>通过使用生成器表达式将每个值转换为浮点值,将这些浮点值求和,然后除以来宾词典中的项数,可以简化此过程:</p>
^{pr2}$