2 回答
TA贡献1864条经验 获得超2个赞
您可以执行循环并在b将值添加到 之前检查每个键a。
def add_dict(a,b):
for key in b:
if key not in a:
a[key] = b[key]
return a
编辑:如果您想保留某些值,b而不是即使a键已经存在,a您也可以添加第三个参数add_dict和键列表。然后在循环中,检查键是否在此列表中,并使用值 fromb而不是aif it is。
结果是(为了清楚起见,我添加了 NumPy 风格的文档字符串)
def add_dict(a,b, force_add=None):
"""
Add key/value pairs from `b` into `a`. If a key is in `a` and in `b` its
value is not added to `a`, unless it is in force_add`.
Note: this modifies dictionary `a`
Parameters
----------
a : dict
The first dictionary
b : dict
The second dictionary
force_add : list, optional
A list of keys in `b` whole values will be added to `a` even if `a`
already has the key
Returns
-------
dict
The first dictionary after it was modified.
"""
if force_add is None:
force_add = []
for key in b:
if key not in a or key in force_add:
a[key] = b[key]
return a
现在如果你这样做add_dict(b, a, force_add=["saya"])你会得到
{'omnibus': 0, 'law': 0, 'meningkatkan': 0, 'kesejahteraan': 0, 'saya': 2, 'setuju': 0, 'diterapkan': 0, 'menolak': 2, 'dan': 1, 'tetap': 1, 'di': 1, 'sekolah': 1, 'diperintahkan': 1, 'untuk': 1, 'tidak': 1, 'layak': 1}
TA贡献1796条经验 获得超4个赞
您可以使用 setdefault ,它仅在密钥不存在时更新:
for i in b: a.setdefault(i, b[i])print(a) {'saya': 2, 'menolak': 2, 'omnibus': 3, 'law': 3, 'dan': 1, 'tetap': 1, 'di': 1, 'sekolah': 1, 'diperintahkan': 1, 'untuk': 1, 'tidak': 1, 'layak': 1, 'meningkatkan': 0, 'kesejahteraan': 0, 'setuju': 0, 'diterapkan': 0}
添加回答
举报