我正在尝试编写一个程序,将列表中的每个项目与文档文本进行比较。然后程序应该返回一个新列表,其中每个项目都附加一个值,表明它与文档中的单词匹配了多少次。我编写了一个函数来实际进行匹配,并且它本身就可以正常工作。进行计数的循环也适用于单个条目。但是,当我尝试对列表的所有条目运行它时,它会返回第一个列表条目的正确编号,然后只为其余的条目返回零。
这是它的样子:
doc = open("C:/...")
list = ['string_1', 'string_2', 'string_3', ...]
answer = []
...
[some code]
...
for t in list:
counter = 0
for word in doc:
if func(word,t) == True:
counter += 1
answer.append([counter,t])
print answer
最接近回答我的问题的是这篇文章。但是,我确实想为每个列表项重置计数器,并且我没有在完成计算的实际“for”语句中包含“counter = 0”。
我有一种感觉,它可能与“counter = 0”赋值的位置有关,但如果我将它放在“for t in list:”循环之外,那么它只会为每个列表条目返回相同的值。