Python中对比两个字典提取共有键值对生成新字典的实现方法
实现方案
方法1:字典推导式(最简洁,兼容所有Python3版本)
直接遍历dict2的键值对,筛选出同时存在于dict1中的键即可:
dict3 = {k: v for k, v in dict2.items() if k in dict1}
方法2:键集合交集实现(适合大数据量场景)
先取两个字典的键交集,再基于交集从dict2取值构建新字典,效率更高:
common_keys = dict1.keys() & dict2.keys() dict3 = {k: dict2[k] for k in common_keys}
完整测试代码
dict1 = {'a': '14591', 'b': '14590', 'c': '14590', 'd': '14590', 'e': '14590'} dict2 = {"k": '0', "l": '1', 'b': '2', 'c': '2', 'd': '6', 'e': '7'} # 任选一种实现方式即可 dict3 = {k: v for k, v in dict2.items() if k in dict1} print(dict3) # 输出:{'b': '2', 'c': '2', 'd': '6', 'e': '7'}
逻辑说明
- 字典的键查询时间复杂度为O(1),两种实现方式的执行效率都很高
- 最终生成的
dict3只会保留同时存在于两个字典中的键,且值完全和dict2的对应值一致,符合需求。
内容的提问来源于stack exchange,提问作者feramuz
相关产品推荐
相关产品推荐

