我目前正在尝试找到一种更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
该代码执行了我想要的操作,但我正在寻找更好的方法来执行此操作。基本上我有两本词典。 data_dict 是具有键值对 id:response 的字典,NaN_dict 具有键值对 id:value。如果值低于容差,我希望 data_dict 中具有相同 ID 的键值对包含在 Final_dict 中。
我想出了类似的东西:
final_dict = {k:v for k,v in data_dict if NaN_dict[k]<=tolerance}
我知道这是错误的,但我不知道如何继续。谢谢!
最佳答案
我认为你几乎是对的。似乎唯一缺少的是调用 .items()
来获取键值对:
{k: v for k, v in data_dict.items() if NaN_dict[k] <= tolerance}
关于python - 使用另一个字典过滤Python字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33358933/