擅长:python、mysql、java
<p>就像@JacobKrall说的,这样做:</p>
<pre><code>for line in file_handle:
</code></pre>
<p>迭代<em>行</em>,而不是单词。如果你碰巧每行有一个单词,你的方法可能会奏效,但唉。你知道吗</p>
<p>试着使用<code>collection.Counter</code>而不是滚动你自己的计数器。你知道吗</p>
<pre><code>from collections import Counter
with open('myfile') as f:
c = Counter(word[0].lower() for word in f.read().split())
</code></pre>
<p>或者,如果您的输入文件非常庞大(在您的情况下不是),并且禁止将其全部读入内存,则另一种形式是:</p>
<pre><code>with open('myfile') as f:
c = Counter()
for line in f:
c.update(word[0].lower() for word in line.split())
</code></pre>
<p>同样有效。你知道吗</p>