我有一个.txt,其中填充了4000个垂直列出的不同单词。 我应该找到我输入的某个单词的位置,但是对于文件中确实存在的单词的位置,我会得到非常奇怪的值。到目前为止,这就是我的代码
因此,列表上的第一个单词是'the',因此,如果我要在search_word输入中输入'the',那么当我应该得到1时,我将得到零。另一个例子是,如果我输入“ be”,当它应该排在第2位时,我会得到4。
我认为问题在于我的代码仅扫描列表中的每个字符,而不是分别扫描每个单词。我不知道如何解决这个问题!
答案 0 :(得分:1)
您可以改用enumerate
来生成排名数字,而for-else
构造则是在单词找到后立即输出单词和break
循环,或者等到循环为止无需中断即可确定没有找到匹配的单词:
with lexicon_file as file:
for i, w in enumerate(file, 1):
if search_word == w.rstrip():
print("Accoding to our Lexicon, '%s' is ranked number %d in the most common word in contemporary American English" % (search_word, i))
break
else:
print("According to our Lexicon, '%s' is NOT in the 4000 most common words of contemporary American English")