我正在创建一个文本文件中最常用单词的列表。但我不断得到文字和他们的占有版本。像iphone和iphone一样。我还需要在我的结果中删除像iphone和iphone这样的词之后的逗号。我想将这些单词统计为一个实体。 这是我的整个代码。
1. 40 iphone
2. 15 users
3. 12 iphone’s
4. 9 music
5. 9 apple
6. 8 web
7. 7 new
以下是我的一些结果。
issuperset
非常感谢任何帮助。谢谢
答案 0 :(得分:0)
您需要说for i in words:
而不是for i in d:
您正在替换步骤中迭代空字典,因此没有任何变化。只需删除该循环并将替换步骤移到for w in words:
循环的顶部,这样您只需要进行一次循环。
我会这样重做整个部分:
for w in words:
w = w.replace('.','').replace(',','').replace('\'','').replace("’","")
d[w] = d.get(w,0) + 1
就像现在一样,你也试图在追加到字典之前拆分i
。它已经分裂了。此外,您需要一个键:字典的值。在这一点上给它一个零值?,以后你可以计算没有测试的事件?
使用if w in d:
而不是测试.get()
,默认值为零(如果找不到w
则返回),而不是数百(甚至数千倍),如图所示上方。