擅长:python、mysql、java
<p>正如我之前所说,这句话:</p>
<pre><code>countdict= dict(zip(alist,[0]*len(alist)))
</code></pre>
<p>将删除您传入的对<code>countdict</code>的引用。因此,您正在打印的<code>countdict</code>变量是原始的空字典。与之相关的问题:<a href="https://stackoverflow.com/questions/986006/how-do-i-pass-a-variable-by-reference">How do I pass a variable by reference?</a>将有助于解释为什么会发生这种情况。你知道吗</p>
<p>为了解决这个问题,可以将<code>mode</code>函数中的return语句更改为:</p>
<pre><code>return (modelist, countdict)
</code></pre>
<p>它将返回一个包含<code>modelist</code>和<code>countdict</code>的元组。调用此函数时,您将编写:</p>
<pre><code>(mod, countdict) = mode(magList, countdict)
</code></pre>
<p>确保返回修改后的<code>countdict</code>,这意味着<code>print</code>函数调用不应输出空字典。你知道吗</p>
<p>另一件需要注意的事情是,您传递给<code>countdict</code>的<code>mode</code>无论如何都是空的,因此您可能会发现最好不要传递这个参数,而让<code>mode</code>只接受一个参数。你知道吗</p>