提问者:小点点

向python字典累积添加值


假设我有一本字典

key={'a':5}

现在,我想累积地向它添加值,而不覆盖当前值,而是添加到它上面。怎么做呢?我举一个例子:

for post in doc['post']:
    if 'wow' in post:
        value=2
        for reactor in post['wow']['reactors']:
            dict_of_reactor_ids.update({reactor['img_id']:value})
    if  'sad' in post:
        value=2
        for reactor in post['sad']['reactors']:
            dict_of_reactor_ids.update({reactor['img_id']:value})

假设词典在第一次迭代中是这样的

dict_of_reactor_ids={101:2,102:1}

现在我想把101键的值增加3,然后怎么做。

dict_of_reactor_ids={101:5,102:1}

现在在post的第二次迭代中,我想在不覆盖当前值的情况下向字典中的当前值添加值
我尝试过更新方法,但我认为它只是更新了整个值,而不是添加到值中。


共1个答案

匿名用户

听起来像一个典型的柜台案例:

>>> from collections import Counter
>>> c = Counter()
>>> c["a"] += 1 # works even though "a" is not yet present
>>> c.update({"a": 2, "b": 2}) # possible to do multiple updates
{"a": 3, "b": 2}

在您的情况下,它的好处是,即使密钥不在其中(默认值为0),它也可以工作,并且允许一次更新多个值,而在正常的dict上更新会覆盖您注意到的值。