我不确定为什么下面的代码没有遍历整个列表并汇总所有目标值。它只是遍历列表中的第一项。
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)
我可以打印整个列表的所有成绩,但是当我尝试汇总成绩时,它将停在第一本词典中。
答案 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)