擅长:python、mysql、java
<p>代码的问题是,您正在创建一个包含所有单词的列表,然后循环使用它们。您希望创建某种只存储唯一单词的数据结构。一个<code>dict</code>是一个很好的方法,但是在Python中有一个专门的集合叫做<code>Counter</code>,它就是为了这个目的而构建的。你知道吗</p>
<p>尝试一下(未经测试):</p>
<pre><code>from collections import Counter
import string
text = open('mary.txt','r')
textr = text.read()
for punc in string.punctuation:
textr = textr.replace(punc, "")
counts = Counter(textr.split())
for word, count in counts.items():
print word,':',count
</code></pre>