使用另一个字典过滤python字典

时间:2015-10-27 02:22:41

标签: python dictionary filter

我目前正在尝试使用另一个字典找到一种更加pythonic的方法来过滤字典。目前我有以下代码:

def filter_respondents(data_dict, tolerance):
    NaN_dict = diagnostic_tools.get_NaN_ratio(data_dict)
    final_dict = {}            
    for respondent in data_dict:
        if NaN_dict[respondent]<=tolerance:
            final_dict[respondent] = data_dict[respondent]    
return final_dict

代码完成了我想要它做的事情,但我正在寻找一种更好的方法。基本上我有2个词典。 data_dict是一个字典,其键值对id:response和NaN_dict具有键值对id:value。如果value低于容差,我希望data_dict中具有相同ID的键值对包含在final_dict中。

我想出了类似的东西:

final_dict = {k:v for k,v in data_dict if NaN_dict[k]<=tolerance}  

我知道这是错的,但我不确定如何继续。谢谢!

1 个答案:

答案 0 :(得分:2)

我认为你几乎是对的。似乎唯一缺少的是调用.items()来获取键值对:

{k: v for k, v in data_dict.items() if NaN_dict[k] <= tolerance}