具有优先级的两个python字典基于键的交集

时间:2019-03-02 18:58:14

标签: python dictionary

假设我有两个字典,ab

a = {"a": 2, "b": 4}
b = {"a": 5, "b": 2, "c": 10}

我想在两个字典中找到通用键,然后从b中获取这些键的值以创建一个新的键。示例:

c = intersect_keys(a, b)
# c = {"a": 5, "b": 2}

如您所知,第一个数组中不存在的键未在新生成的键中使用。如何使用Python快速完成此操作?

此外,由于我们总是从第二个数组中选择值,所以最好只将a放入列表中,然后对其进行迭代,然后再从b中获取值?感谢您的回答。

2 个答案:

答案 0 :(得分:2)

您可以使用词典理解,以便将b中也存在的那些键保留在a中:

{k:v for k,v in b.items() if k in a}

输出

{'a': 5, 'b': 2}

答案 1 :(得分:1)

尝试这个吗?:

myKeys = set(a.keys()).intersection(b.keys())
c = {}
for key in myKeys:
    c[key] = b[key]