Python如何根据参考key列表过滤字典,删除不匹配键值对
Python 字典按指定键筛选实现方案
方法1:使用你熟悉的.intersection()方法实现
字典的.keys()返回的键视图原生支持集合类操作,你可以直接沿用之前用交集对比的逻辑实现筛选:
# 你的原有数据 main_dictionary = {'Bob' : '-0.3', 'Mike': '-0.6', 'Nia' : '-0.8', 'Tim':'-0.2', 'Holly':'-1.3', 'Liam':'-2.1', 'Dave':'-0.4'} selected_names = ['Nia', 'Holly', 'Liam', 'Dave'] # 取字典键和选中列表的交集,两种写法等效 common_keys = main_dictionary.keys().intersection(selected_names) # 运算符写法:common_keys = main_dictionary.keys() & selected_names # 生成目标字典 updated_dictionary = {k: main_dictionary[k] for k in common_keys}
输出结果和你需要的目标完全一致:{'Nia': '-0.8', 'Holly': '-1.3', 'Liam': '-2.1', 'Dave': '-0.4'}
方法2:更简洁的字典推导式写法
如果不需要显式调用交集方法,也可以直接用成员判断实现,逻辑更直观:
# 可选:如果selected_names长度较大,先转成集合可以提升查询效率 selected_set = set(selected_names) updated_dictionary = {k:v for k, v in main_dictionary.items() if k in selected_set}
内容的提问来源于stack exchange,提问作者Barry Marples
相关产品推荐
相关产品推荐

