Python: заполнить или добавить значение к текущему значению в словаре - PullRequest
0 голосов
/ 13 сентября 2011

У меня есть данные в виде

00 154
01 72
02 93
03 202
04 662
05 1297
00 256

Я хочу пройти каждую строку и сделать значение в столбце 1 ключом, а значение столбца 2 - значением

.если текущий ключ уже существует, математически добавьте новое значение столбца 2 к текущему значению столбца 2.

Попробовал это:

search_result = searches.stdout.readlines()
      for output in search_result:
        a,b =  output.split()
        a = a.strip()
        b = b.strip()

        if  d[a]:
         d[a] = d[a] + b
        else:
         d[a] = b

И получил:

Traceback (most recent call last):
  File "./get_idmanager_stats.py", line 25, in <module>
    if  d[a]:
KeyError: '00'

Ответы [ 2 ]

5 голосов
/ 13 сентября 2011

Это то, для чего collections.defaultdict.

Вы можете просто сделать

d = defaultdict(int)

И

d[a]= d[a] + int(b)

И вы обнаружите, что это работает без каких-либо операторов if.

2 голосов
/ 13 сентября 2011
d = collections.defaultdict(int)
for output in search_results:
   a,b = output.split()
   d[int(a)] += int(b)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...