累计将值添加到python字典

时间:2018-08-26 19:17:17

标签: python-3.x dictionary

假设我有字典

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}

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

1 个答案:

答案 0 :(得分:1)

听起来像Counter的典型情况:

>>> 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的更新将覆盖您所注意到的价值。