我试图计算具有相同子键的子字典的tot值。我有一个包含相关键的列表mylist
,我只需要计算列表中每个元素的值的总数
mylist = ['age','answ1', 'answ2', 'answ3']
d = {'01': {'age':19, 'answ1':3, 'answ2':7, 'answ3':2}, '02': {'age':52, 'answ1':8, 'answ2':1, 'answ3':10},...}
我试过了
tot = []
for k,v in d.items():
for ke, va in v.items():
for i in mylist[0:]
count=0
if ke == i:
count+=v[ke]
tot.append(count)
但我不是用同一个键的值的总和,而是按字典中出现的顺序得到不同键的值。 预期结果将是:
tot = [71, 11, 8, 12]
我得到的是
tot = [19, 3, 7, 2, 52, 8, 1, 10]
如果希望将结果存储在字典中,可以使用列表中的键创建一个字典,并在其中计算结果
然而,这取决于钥匙是否不变,顺序应该无关紧要
编辑
通过以下更新,您可以在不考虑键名的情况下执行此操作。注意,它增加了一个额外的迭代
印刷品:
与
collections.Counter
一起:或:
如果某些子目录可能缺少键,只需使用
e.get(k, 0)
。Counter
解决方案不需要它,它默认提供零嗯,既然你现在接受了
dict
结果解决方案或者只是
尽管这些密钥可能比所需的密钥更多,但如果数据中有更多的密钥
相关问题 更多 >
编程相关推荐