如何将两个Python字典合并为一个?
可能重复的问题:
Python 中字典的“extend”方法
我知道 Python 的列表可以添加元素或者扩展。那么,有没有简单的方法可以把两个有独特键的 Python 字典合并在一起呢?比如:
basket_one = {'fruit': 'watermelon', 'veggie': 'pumpkin'}
basket_two = {'dairy': 'cheese', 'meat': 'turkey'}
我想要一个大的食物篮子:
basket = {
'fruit': 'watermelon',
'veggie': 'pumpkin',
'dairy': 'cheese',
'meat': 'turkey'
}
我该如何在 Python 中实现以上操作呢?
2 个回答
9
basket = basket_one.copy()
basket.update(basket_two)
(如果原来的 basket_one 不需要保持完整,你可以不复制它)
65
这里有一种“单行代码”的写法,它不会改变输入的两个字典,代码如下:
basket = dict(basket_one, **basket_two)
如果两个字典有冲突,basket_two
里的内容会覆盖basket_one
里的内容。作为单行代码来说,这种写法相当清晰易懂,我完全不介意在需要将两个字典合并成一个字典的时候使用它(如果有读者对这段代码感到困惑,其实这正好可以帮助他们更好地学习dict
和**
的用法)。所以,比如说,像这样的用法:
x = mungesomedict(dict(adict, **anotherdict))
在我的代码中是比较常见的。
注意:在Python 3中,只有当anotherdict
中的每个键都是字符串时,这种方法才有效。可以查看这些替代方案。