我目前正在尝试使用另一个字典找到一种更加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}
我知道这是错的,但我不确定如何继续。谢谢!
答案 0 :(得分:2)
我认为你几乎是对的。似乎唯一缺少的是调用.items()
来获取键值对:
{k: v for k, v in data_dict.items() if NaN_dict[k] <= tolerance}