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}
添加回答
舉報