在Python的词典列表中的元组列表中查找值的平均值

时间:2018-10-21 03:25:01

标签: python-3.x

我不确定为什么下面的代码没有遍历整个列表并汇总所有目标值。它只是遍历列表中的第一项。

def average_grade(students):
    sum = 0
    grades_num = 0
    for s in students:
        for assignment_name, grade in s['assignments']:
            sum += grade
            grades_num += 1
        average = sum / grades_num
        return average
average_grade(students)   

我可以打印整个列表的所有成绩,但是当我尝试汇总成绩时,它将停在第一本词典中。

1 个答案:

答案 0 :(得分:0)

return语句在循环中 ,因此在第一次迭代结束时,函数将返回。只需取消average计算和return语句的缩进即可。

def average_grade(students):
    sum = 0
    grades_num = 0
    for s in students:
        for assignment_name, grade in s['assignments']:
            sum += grade
            grades_num += 1
    average = sum / grades_num
    return average

average_grade(students)