想请教一下各位这种写法哪里错了导致平均值不对

img


方糖 99元
X1 499元
魔盒 399元
曲奇 299元
(3)输出产品的平均值

lst应当在遍历外定义,也就是for上面定义。你现在的定义位置会导致每次循环都初始化为一个空列表再添加一个value

dic={
    "a":1,
    "b":5,
    "c":37,
}
lst=[]
for key,value in dic.items():
    print(key,value)
    lst.append(value)
print(sum(lst)/len(lst))
a 1
b 5
c 37
14.333333333333334

不用循环,直接用公式就能计算平均值:

>>> dic={
    "方糖":99,
    "X1":499,
    "魔盒":399,
    "曲奇":299
}
>>> print('产品平均值',sum(dic.values())/len(dic))
产品平均值 324.0

>>> dic={
    "方糖":99,
    "X1":499,
    "魔盒":399
}
>>> print('产品平均值',sum(dic.values())/len(dic))
产品平均值 332.3333333333333