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

标签 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

该代码执行了我想要的操作,但我正在寻找更好的方法来执行此操作。基本上我有两本词典。 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/

相关文章:

c++ - 阅读字典并打印出给定长度的单词

ios - Firebase 实时数据库查询不起作用

python - 将输入从React.js/Electron应用传递到Python脚本?

python - 如何从一个列表中获取小于或等于python中另一个列表的所有值

dictionary - 有没有办法在map/forEach中标识当前索引

jsf - Primefaces 数据表,过滤本地化枚举值

javascript - 根据所选类别进行过滤 react

从 cronjob 运行时,Python 找不到自定义安装的模块

python - 在 django admin 中对模型中的自定义字段进行排序

dictionary - F# 中不可变的可变字典