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

发布于 2024-12-04 01:21:32 字数 618 浏览 1 评论 0原文

我的数据格式为:

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'

I have data in the form of

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

I wish to go through each line and make the value in column 1 the key and the value of column 2 the value

also if the current key already exists, mathematically add the new value of column 2 to the current value of column 2.

Tried this:

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

And Got this:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

谜兔 2024-12-11 01:21:32

这就是collections.defaultdict 的用途。

您可以简单地执行

d = defaultdict(int)

And

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

并且您会发现它无需任何 if 语句即可工作。

This is what collections.defaultdict is for.

You can simply do

d = defaultdict(int)

And

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

And you'll find that it works without any if statement.

汹涌人海 2024-12-11 01:21:32
d = collections.defaultdict(int)
for output in search_results:
   a,b = output.split()
   d[int(a)] += int(b)
d = collections.defaultdict(int)
for output in search_results:
   a,b = output.split()
   d[int(a)] += int(b)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文