例如,我有
a = {'bob': [1, 2], 'bill': [3, 4], 'steve': [1]}
我想把它添加到另一個字典
b = {'bob': [4], 'bill': [7]}
去創造
b = {'bob': [1, 2, 4], 'bill': [3, 4, 7], 'steve': [1]}
我嘗試遍歷 a 并將串列添加到從 b 到 a 的串列值中,但它不適用于基本的串列添加方法。提前致謝。
uj5u.com熱心網友回復:
像這樣的東西應該作業:
def add_dicts(a, b):
return {
k: a.get(k, []) b.get(k, [])
for k in a | b
}
result = add_dicts(a, b)
uj5u.com熱心網友回復:
使用字典理解,迭代兩個字典中的鍵的聯合。如果任一字典缺少相關鍵,使用get將使我們默認為空串列。這避免了KeyError例外。
>>> {k: a.get(k, []) b.get(k, []) for k in a.keys() | b.keys()}
{'steve': [1], 'bob': [1, 2, 4], 'bill': [3, 4, 7]}
沒有明確呼叫keys:
{k: a.get(k, []) b.get(k, []) for k in a | b}
uj5u.com熱心網友回復:
該代碼將以您想要的方式合并它們:
a = {'bob': [1, 2], 'bill': [3, 4], 'steve': [1]}
b = {'bob': [4], 'bill': [7]}
def merge(a, b):
for k, l in a.items():
b[k] = l b.get(k, [])
merge(a, b)
print(b)
# {'bob': [1, 2, 4], 'bill': [3, 4, 7], 'steve': [1]}
uj5u.com熱心網友回復:
c = {key: a.get(key,[]) b.get(key, []) for key in a|b}
如果串列相交,不清楚你想做什么
因此,如果您只想要新專案,那么這個
c = {key: list(set(a.get(key,[])) | set(b.get(key, []))) for key in a|b}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/517014.html
上一篇:在Django視圖中觸發長行程
