使用Python计算出现在列表中的单词的出现次数
问题描述:
我已经使用xlrd将Excel表单值附加到列表中。我打电话给名单a_master。我有一个带有单词的文本文件,我想计算出现在这个列表中的出现次数(我称这个文件字典和他们的每行1个单词)。下面是代码:使用Python计算出现在列表中的单词的出现次数
with open("dictionary.txt","r") as f:
for line in f:
print "Count " + line + str((a_master).count(line))
出于某种原因,不过,伯爵回来与零存在在文本文件中的每个字计数。如果我写出来的计数这些词我自己:
print str((a_master).count("server"))
它计算的出现没有任何的疑难问题也按顺序尝试
print line
,看它是否是看到的话dictionary.txt文件正确,它是。
答
从文件中读取的行以换行符结束。最后也可能有空白。这是更好地做一个查找
with open("dictionary.txt","r") as f:
for line in f:
print "Count " + line + str((a_master).count(line.strip()))
注意理想之前去掉所有的空白,搜索列表是线性的,也有可能在大多数情况下是最佳的。我认为collections.Counter适合你所描述的情况。
重新诠释您的列表作为一本字典,其中的关键是项目和值使其通过collections.Counter
是出现如下图所示
a_master = collections.Counter(a_master)
,你可以重新编写代码为
from itertools import imap
with open("dictionary.txt","r") as f:
for line in imap(str.strip, f):
print "Count {} {}".format(line, a_master[line])
答
import re
import collections
words = re.findall(r'\w+', open('dictionary.txt').read().lower())
collections.Counter(words)
为什么为t他的问题的方式标记xlrd?
你能否提供该文件的例子? – ka2m
这是http://stackoverflow.com/questions/8742732/python-number-of-word-occurrences –
@ tommy.carstensen的副本:不是一个确切的副本。请阅读我的答案。 – Abhijit