使用list comprehension在python中读取txt文件

时间:2015-11-24 17:07:24

标签: python generator list-comprehension

如何在python中返回一个与搜索到的单词长度相同的单词。例如,我正在寻找[“三”,“茶”,“树”列表中“三”字最接近的匹配,我想返回相同长度字的第一次出现。

我需要使用生成器或一些列表推导来完成它,因为我有一个非常大的数据集。到现在为止我有这个功能:

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

1 个答案:

答案 0 :(得分:1)

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

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

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