我有一本看起来像这样的字典。 。 。
CombinedDict = {'Abamectin': [63, 31, 53], 'Difenzoquat metilsulfate': [185, 49, 152], 'Chlorpyrifos': [14, 26, 56], 'Dibutyl phthalate': [25, -17, -18]
等等。我总共有48个不同的按键。
我想要的是这三个数字的平均值。所以我会得到一个看起来像这样的字典。 。 。
AvgDictName = {'Abamectin': [49], 'Difenzoquat metilsulfate': [128], 'Chlorpyrifos': [32], 'Dibutyl phthalate': [-3] . . .
我尝试过使用此行
AvgDictName = dict([(key, float(sum([int(i) for i in values])) / len(values)) for key, values in CombinedDict])
但是我得到太多的值来解压错误 有任何想法吗?我认为也可以通过将dict放入列表并使用len和sum命令从列表中查找平均值然后转换回dict但我真的不知道如何去做。谢谢,我觉得这很容易。
答案 0 :(得分:5)
答案 1 :(得分:0)
for x in dictionary: ...
遍历字典的键。
除非密钥本身是元组,否则for a, b in dictionary
会出错,因为它会尝试将密钥解压缩为两个值。
答案 2 :(得分:0)
python 3.2
>>> [(i,sum(v)//len(v)) for i,v in t.items()]