【发布时间】:2021-04-08 20:48:24
【问题描述】:
我有两本字典
一个:
default = {"val1": 10, "val2": 20, "val3": 30, "val4": 40}
两个:
parsed = {"val1": 60, "val2": 50}
现在,我想组合这两个字典,使两个字典中存在的键的值取自 parsed 字典和 default 中的其余键的值,并将它们的值放入到新词典。
对于上面给定的字典,新创建的字典将是,
updated = {"val1": 60, "val2": 50, "val3": 30, "val4": 40}
对此进行编码的明显方法是遍历default 中的键并检查parsed 中是否存在该键,然后将其放入新列表updated 和相同的else 子句中检查我们可以使用来自default 的值。
我不确定这是一种 Python 的方式还是一种更简洁的方法。有人可以帮忙吗?
【问题讨论】:
-
updated = {**default, **parsed},从 python 3.9 (PEP 0584) 开始你也可以使用updated = default | parsed -
不。我的问题是在组合表达式中优先使用字典而不是另一个字典。
-
不确定评论被删除的原因。重复的目标确实回答了这个问题。例如,请参阅接受的答案:“所需的结果是获得一个新字典 (z),其中的值合并,第二个字典的值覆盖第一个字典的值。”这里的答案不'不要添加任何新内容,只需重复重复目标中给出的解决方案。
标签: python dictionary grouping