python - 在嵌套字典列表中添加平均值的键

标签 python python-2.7 dictionary list-comprehension key-value

我有一本日期键字典。每个日期都有一个项目的键:值对和一个日期列表。

我想为每个日期键添加一个平均指标,同时删除 6 以上的异常值。我的代码很接近,但会产生一些奇怪的结果。

import numpy as np
d = {}
d['1/2/15'] = {'Project 1' : [1,4,7], 'Project 2' : [1,5, 11]}

for key, value in d.iteritems():
    avg =  np.mean([x for x in d[key]['Project 1'] if x < 6])
    d[key][str(value) + ' Average'] = avg

print d

预期输出:

{'Project 1' : [1,4,7], 'Project 1 Average' : 2.5, 'Project 2' : [1,5,7], 'Project 2 Average' : 3.0 }

最佳答案

import numpy as np
d = {}
d['1/2/15'] = {'Project 1' : [1,4,7], 'Project 2' : [1,5, 11]}

for key, value in d.iteritems():
        d_avg = {}
        for k, v in value.iteritems():
            avg =  np.mean([x for x in d[key][k] if x < 6])
            d_avg[str(k) + ' Average'] = avg
        d[key].update(d_avg)

print d

输出

{'1/2/15': {'Project 2 Average': 3.0, 'Project 2': [1, 5, 11], 'Project 1 Average': 2.5, 'Project 1': [1, 4, 7]}}

问题是字典在迭代时无法更新。

关于python - 在嵌套字典列表中添加平均值的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29900550/

相关文章:

python - zip 参数 #1 在循环 zip 时必须支持迭代错误

python - 一旦 python 脚本从终端 (Ctrl-C) 停止,如何释放 Ubuntu 内存?

python - 列表相同但不被视为相等?

python - 继承 - __hash__ 在子类中设置为 None

python - 在python中计算年龄

python - 如何安装cuML模块?

dictionary - 将 NSDictionary 转换为 Swift 字典

python - 将多级多索引名称转换为 DataFrame 列,Python 3.6

hadoop - 如何在 impala 中启用递归读取

python 将 beautifulsoup 输出转换为 dict/json