在不满足条件时跳过for循环

时间:2018-05-28 11:30:02

标签: python

我正在尝试使用名为ratio_dict的字典从文档列表创建updated_document列表,该字典存储文档中存在的所有单词的计数以及一些计数为0的其他单词。

我想存储ratio_dict中存储的值大于2的所有单词。我正在运行下面的代码,但它给了我 KeyError 所有计数为0的单词。我想忽略所有那些存储在ratio_dict中的值为0的单词。我怎么能给出跳过条件在那个清单里面?

updated_document = [[b for b in i if ratio_dict[b] >= 2.0] for i in documents]

例如:

document = [['b','m','n'],['b'],['g'],['o','b','g'],['b','g']]
ratio_dict = {'a':0, 'b':4,'c':0,'g':3,'m':1,'n':1,'o':1}
Expected updated_document = [['b','m'],['b'],['g'],['b','g'],['b','g']]

1 个答案:

答案 0 :(得分:3)

放手一搏。

updated_document = [[b for b in i if ratio_dict.get(b, 0) >= 2.0] for i in documents]

ratio_dict.get(b, 0)用于从b中选择ratio_dict,如果b不是ratio_dict中的关键字,则会返回0 }}

您也可以查看collections.Counter