python - 合并两个词典的部分以创建一个新词典

标签 python dictionary merge

我想知道如何合并两个词典来创建一个新词典。假设我有两个字典:

    a = {'aa' : 'aaa', 'bb' : 'bbb', 'cc' : 'ccc'}
    b = {'aa' : '111', 'bb' : '222', 'dd' : '444', 'ee' : '555'}

我想创建第三个字典,使用包含在 a 和 b 中的键,但我希望值来自字典 a。所以它看起来像这样:

   c = {'aa' : 'aaa', 'bb' : 'bbb'}

谁能帮我解决这个问题?

最佳答案

对于 python2 只需使用 dict.viewkeys找到字典键的交集:

dictview & 其他

Return the intersection of the dictview and the other object as a new set.

a = {'aa' : 'aaa', 'bb' : 'bbb', 'cc' : 'ccc'}
b = {'aa' : '111', 'bb' : '222', 'dd' : '444', 'ee' : '555'}

print({k:a[k] for k in a.viewkeys() & b})
{'aa': 'aaa', 'bb': 'bbb'}

对于 python3,只需使用返回 dictview 对象的 .keys:

a = {'aa' : 'aaa', 'bb' : 'bbb', 'cc' : 'ccc'}
b = {'aa' : '111', 'bb' : '222', 'dd' : '444', 'ee' : '555'}

print({k: a[k] for k in a.keys() & b})

{'aa': 'aaa', 'bb': 'bbb'}

关于python - 合并两个词典的部分以创建一个新词典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31932007/

相关文章:

python - 将函数应用于 3D、2 channel Keras 张量的每个元素

dictionary - 从 Swift 字典中一次提取多个键的值

python - 将字符串转换为字典 - pythonic Way

javascript - 字典:JavaScript 中的映射与对象

c - 合并排序停止运行

python pandas 合并数据透视表

sql - 如果合并语句中不存在?

python - 找到第一个超过 100 万的斐波那契数

python - 测试抽象数据类型

python - 为什么使用todoist python api 时会返回这个奇怪的ID?