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

-1 投票
2 回答
1002 浏览
提问于 2025-04-17 02:10

我有一些数据,格式是这样的:

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 语句。

撰写回答