我有
形式的数据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'
答案 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)