Python:在字典中填充或添加值到当前值

时间:2011-09-13 01:55:28

标签: python dictionary add

我有

形式的数据
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 个答案:

答案 0 :(得分:5)

这是collections.defaultdict的用途。

你可以简单地做

d = defaultdict(int)

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

你会发现它没有任何if声明。

答案 1 :(得分:2)

d = collections.defaultdict(int)
for output in search_results:
   a,b = output.split()
   d[int(a)] += int(b)