gpt4 book ai didi

python - 查找字典中特定值的平均值

转载 作者:太空宇宙 更新时间:2023-11-03 16:40:40 25 4
gpt4 key购买 nike

我有一本看起来像这样的字典。 。 .

students_marks = {"barry": [20,25,30], "fred": [12,14,16], "sarah": [32,30,28]

等等,我可以向字典中添加更多带有值的键。这些值是每个作业的分数

我正在尝试获取第一个作业中所有学生的平均值例如。巴里 - 20、弗雷德 - 12、莎拉 - 32

这是我到目前为止的代码

students_marks = {"barry": [20,25,30], "fred": [12,14,16], "sarah": [32,30,28]}

def get_below_average_df_report_marks_report():
sum(float(x[0] for x in students_marks.values())/len(students_marks))

我收到错误:TypeError:float() 参数必须是字符串或数字,而不是“生成器”

最佳答案

问题是您在计算总和之前尝试转换为 float,它应该是 float(sum... 而不是 sum(float... .

>>> float(sum(x[0] for x in students_marks.values()))/len(students_marks)
21.333333333333332

就可读性而言,我更喜欢这个解决方案:

>>> from operator import itemgetter
>>> first_score = itemgetter(0)
>>> num_students = float(len(students_marks))
>>> sum(map(first_score, students_marks.values()))/num_students
21.333333333333332

如果您更喜欢没有 import 语句的解决方案,则此解决方案是等效的:

>>> first_score = lambda scores: scores[0]
>>> num_students = float(len(students_marks))
>>> sum(map(first_score, students_marks.values()))/num_students
21.333333333333332

请注意,如果您使用的是 Python 3,则无需强制转换为 float,因为 / 运算符已默认执行浮点除法。

关于python - 查找字典中特定值的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36821225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com