如何计算单词在文本中的次数

时间:2014-10-02 18:13:41

标签: python list counter words

我是python中的新手,我不知道如何解决这个问题:编写一个函数来计算单词在文本中出现的次数。这是我的代码到目前为止,但我被卡住了。我想我需要找到一种方法来将文本分成单词,但它在列表中,所以我不能这样做。

def searcher(file):
    f = open(file,"r")
    word = raw_input("Write your word: ")
    text = f.readlines()
    text1 = text.split()
    counter = 0
    for x in text1:
        if x == word:
            counter = counter +1
    print counter

提前致谢

1 个答案:

答案 0 :(得分:2)

使用collections.Counter在每行中传递split个字。

s = "foo foo foobar bar"
from collections import Counter
print Counter(s.split())
Counter({'foo': 2, 'foobar': 1, 'bar': 1})

def searcher(file):
    c = Counter()
    word = raw_input("Write your word: ")
    with open(file,"r") as f:
       for line in f:
           c.update(line.lower().rstrip().split())
    return c.get(word)