如果我有两个看起来像这样的字典:

a = {"fruit":["orange", "lemon"], "vegetable":["carrot", "tomato"]}
b = {"fruit":["banana", "lime"]}


有没有一种方法可以更新字典'a',以便不覆盖以前的数据,而仅附加它以使我的结果看起来像这样?

a = {"fruit":["orange", "lemon", "banana", "lime"], "vegetable": ["carrot", "tomato"]}


我知道有类似的东西,但是不幸的是它重写了值,这不是我想要做的:

a.update(b)
#returns a dictionary like the following {"fruit":["banana", "lime"], "vegetable":["carrot","tomato"]}, again, not what I want.

最佳答案

没有循环就没有办法:

for k, v in b.items():
    a[k].extend(v)


这假定a[k]实际上存在。 。 。如果要在丢失的情况下添加它:

for k, v in b.items():
    try:
        a[k].extend(v)
    except KeyError:
        a[k] = v

关于python - 更新字典而不会丢失数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25852784/

10-15 04:10