为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕勒3428872 2021-09-25 16:27:59
我正在尝试将字典发送到计算平均值的函数中,我相信我的函数很好,但是我在发送字典时遇到了麻烦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 进入“结果”
查看完整描述

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))


查看完整回答
反对 回复 2021-09-25
?
扬帆大鱼

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)


查看完整回答
反对 回复 2021-09-25
?
茅侃侃

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


查看完整回答
反对 回复 2021-09-25
  • 6 回答
  • 0 关注
  • 263 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信