我正在制作一个简单的关键字识别程序,其中我有一个txt
文件,每个单词都在新行中。我打开列表,然后检查句子中的每个关键字,稍后我将从数据库中打开。
到目前为止,我收到了这个错误:
TypeError: 'in <string>' requires string as left operand, not list
我得到它都需要是字符串字符串或列表列表。我试验并尝试将句子转换成列表 - 程序没有返回任何内容。
有关如何进行此项工作的任何建议,或建议如何更改内容以使其正确无误?
results = []
with open('words.txt') as inputfile:
for line in inputfile:
results.append(line.strip())
#print results
all_text = 'vistumšākā zaudēt zilumi nāve'
#all_texts = all_text.split()
for word in results:
if results in all_texts:
x += 1
print x
答案 0 :(得分:4)
这里有一个简单的拼写错误。您尝试检查word
文件中的每个words.txt
,但是您在results
语句中使用if
。因此错误; Python说“我希望这个变量包含一个字符串,但它实际上是一个列表。”更改第二个for
循环:
for word in results:
if word in all_texts:
x += 1
我已在以下完整程序中将您的变量重命名为更具描述性:
word_list = []
with open('words.txt') as inputfile:
for line in inputfile:
word_list.append(line.strip())
source_text = 'vistumšākā zaudēt zilumi nāve'
source_words = source_text.split()
count = 0
for word in word_list:
if word in source_words:
count += 1
print count