6 回答
TA贡献1836条经验 获得超3个赞
my_dict = {"first": 100, "second": 0, "third": 200}
def dictavg(your_dict):
return sum(your_dict.values())/len(your_dict)
print(dictavg(my_dict))
TA贡献1799条经验 获得超9个赞
您不能将以下语句与字典一起使用:
for k, v in dict:
相反,有一种方法可以分别使用方法 keys() 或 values() 来接收字典的键列表或值。这些方法返回字典键或字典值的列表,然后您可以迭代它们。还有一个方法可以返回键和值的元组列表 - items()。
所以这些都应该适合你:
my_dict = {"first": 100, "second": 0, "third": 200}
def avg(dicti):
total_sum=0
count=0
for key in dicti.keys():
sum += dicti[key]
count +=1
return(sum/count)
result = avg(my_dict)
print(result)
或者:
my_dict = {"first": 100, "second": 0, "third": 200}
def avg(dicti):
total_sum=0
count=0
for value in dicti.values():
sum += value
count +=1
return(sum/count)
result = avg(my_dict)
print(result)
TA贡献1842条经验 获得超21个赞
直接传递您的字典,而不是通过**字典解包运算符。在你的函数中进行解包:迭代dict.items给出键值对,但在这里你可以使用dict.values.
另外,永远不要隐藏内置函数。所以不要使用dict,sum等作为变量名。
这会起作用:
def avg(d):
val_sum = 0
count = 0
for v in d.values():
val_sum += v
count += 1
return(val_sum/count)
result = avg(my_dict) # 100.0
您还可以使用内置函数sum和len:
result = sum(my_dict.values()) / len(my_dict.values())
或使用statistics.mean:
from statistics import mean
result = mean(my_dict.values()) # 100
添加回答
举报