Python:在字典中填充或添加当前值
我有一些数据,格式是这样的:
00 154
01 72
02 93
03 202
04 662
05 1297
00 256
我想逐行处理这些数据,把第一列的值当作键,把第二列的值当作值。
另外,如果当前的键已经存在,就把第二列的新值加到当前的第二列的值上。
我试过这样做:
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 个回答
2
在编程中,有时候我们会遇到一些问题,比如代码运行不正常或者出现错误。这些问题可能是因为我们写的代码有bug,或者是因为我们没有正确地使用某些工具或库。解决这些问题的第一步就是要仔细检查代码,看看有没有拼写错误、语法错误或者逻辑错误。
另外,了解你使用的编程语言和工具的文档也是很重要的。文档通常会提供很多有用的信息,比如如何使用某个功能,或者如何解决常见的问题。如果你在网上找到了一些相关的讨论,比如在StackOverflow上,记得仔细阅读别人的经验和解决方案,这样可以帮助你更快地找到问题的根源。
最后,不要害怕寻求帮助。如果你自己解决不了问题,可以向朋友或者编程社区求助,大家都会很乐意分享他们的经验和知识。
d = collections.defaultdict(int)
for output in search_results:
a,b = output.split()
d[int(a)] += int(b)
5
这就是 collections.defaultdict
的用途。
你可以简单地这样做:
d = defaultdict(int)
然后:
d[a]= d[a] + int(b)
你会发现这样做不需要任何 if
语句。