Кумулятивно добавлять значения в словарь Python - PullRequest
0 голосов
/ 26 августа 2018

Предположим, у меня есть словарь

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 голосов
/ 27 августа 2018

Похоже на типичный случай Счетчик :

>>> 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 перезаписывает значение, как вы заметили.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...