gpt4 book ai didi

python - 通过标准迭代总结值并存储到字典中

转载 作者:行者123 更新时间:2023-11-30 23:26:32 25 4
gpt4 key购买 nike

我有以下数据:

foo a 199
foo b 200
foo c 300
foo a 103
foo b 400
foo c 120
bar a 100
bar b 100
bar c 100

我想要得到的是一本如下所示的字典:

{foo:{a:302,   # 199 + 103
b:600, # 200 + 400
c:420,}, # 300 + 120
bar:{a:100,
b:100,
c:100}}

我被这段代码困住了:

import csv
from collections import defaultdict

outerdict = defaultdict(dict)
with open('myinputabove.txt','r') as tsvfile:
tabheader = csv.reader(tsvfile,delimeter=" ")
for row in tabheader:
val1 = row[0]
val2 = row[1]
val3 = row[2]
outerdict[val1][val2] += val3

最佳答案

你走在正确的道路上。对代码进行一些修改即可解决问题。

  • 当您使用 csv 模块进行解析时,每个元素都是一个字符串。那么你在添加之前必须将 val3 转换为 int。
  • 您必须处理向内部字典添加元素时可能出现的KeyError

以下代码有效:

outerdict = defaultdict(dict)
with open('file.txt','r') as tsvfile:
tabheader = csv.reader(tsvfile, delimiter=" ")
for row in tabheader:
val1 = row[0]
val2 = row[1]
val3 = row[2]
try:
outerdict[val1][val2] += int(val3)
except KeyError:
outerdict[val1][val2] = int(val3)

关于python - 通过标准迭代总结值并存储到字典中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22448376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com