假设我有字典
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}
现在在发布第二次迭代中,我想将值添加到字典中的当前值而不覆盖当前值。
我尝试过更新方法,但我认为它只是更新整个值,而不是添加到它上。
答案 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
的更新将覆盖您所注意到的价值。