首页 > 解决方案 > 我将如何合并嵌套字典以使键不同但值会更新

问题描述

我将如何合并 2 个字典但删除与字典不同的内容或更新它。例如:

account = {
    "1": {"name": "bob", "age": "20", "work": "Assistant"},
    "2": {"name": "James", "age": "36", "work": "Dev"},
}

accounts = {
    "bob": {"name": "bob", "age": "25", "work": "Dev"},
    "James": {"name": "James", "age": "40", "work": "Assistant"},
}

给我留下一本预期的字典:

account = {
    "1": {"name": "bob", "age": "25", "work": "Dev"},
    "2": {"name": "James", "age": "40", "work": "Assistant"},
}

我正在尝试使用 2 个不同的键但相同的值来更新字典。所以没有键是相同的,但值是相同的。有什么建议么?

标签: pythondictionary

解决方案


这使用字典理解来创建一个新字典,方法是遍历字典account并检查name与每个相关联的内容是否id存在于 the 中accounts,如果它确实用namefrom的值替换它,accounts 否则保持相同的值。

account = {key: accounts.get(value["name"], value) for key, value in account.items()}

推荐阅读