检查字典项目平均值的函数

我正在尝试将字典发送到计算平均值的函数中,我相信我的函数很好,但是我在发送字典时遇到了麻烦


my_dict = {"first": 100, "second": 0, "third": 200}


def avg(dict):


    sum=0

    count=0

    for k,v in dict:

        sum = sum+v

        count +=1

    return(sum/count)



result = avg(**my_dict)


print(result)

输出应该是 100 进入“结果”


慕勒3428872
浏览 265回答 6
6回答

米脂

my_dict = {"first": 100, "second": 0, "third": 200}def dictavg(your_dict):    return sum(your_dict.values())/len(your_dict)print(dictavg(my_dict))

扬帆大鱼

您不能将以下语句与字典一起使用: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)

茅侃侃

直接传递您的字典,而不是通过**字典解包运算符。在你的函数中进行解包:迭代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 meanresult = mean(my_dict.values())  # 100
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python