使用列表理解读取 python 中的 txt 文件

Reading txt file in python using list comprehension

如何在 python 中 return 一个与搜索到的词长度相同的词。例如,我正在 ["three"、"tea"、"tree"] 列表中寻找单词 "three" 的最接近匹配,我想 return第一次出现相同长度的单词。

我需要使用生成器或一些列表理解来完成它,因为我有一组非常大的数据。到目前为止我有这个功能:

matches_list= dl.get_close_matches(word.lower(),list_of_words)
if matches_list:
      new_word= (w for w in matches_list if (len(word)==len(w)))  
      print new_word.next()

在第 4 次或第 5 次迭代之前打印正常,我收到此消息错误:

print new_word.next()
StopIteration

使用 next() function 并提供默认值:

new_word = (w for w in matches_list if len(word) == len(w))  
print next(new_word, 'nothing found')

引发了 StopIteration 异常,因为您的生成器在没有(进一步)匹配的情况下到达末尾。如果您为 next() 函数提供第二个参数,那么它将捕获该异常并 return 第二个参数作为默认值。