【发布时间】:2020-02-12 10:14:04
【问题描述】:
这里的目标是打印出所有平均作业分数超过 2.0 的学生的学生 ID。现在,当我运行代码时,它只会为每个平均超过 2.0 的学生打印 False。我错过了什么?我试过重新安排订单无济于事。此外,在这里更改字典的格式不是一个选项。
编辑 - 好的第一个问题已经解决,我已经更新了代码。现在,如何将学生 ID 的最终输出放入列表中?我尝试定义标识,然后以列表形式打印,但这只是返回多个单独的列表,而不是一个列表中的所有结果。
students = {"student_1": {"id":12,"Assignments":[("Assignment_1",3),("Assignment_2", 4), ("Assignment_3", 2)]},
"student_2" :{"id":13,"Assignments":[("Assignment_1",2),("Assignment_2", 4), ("Assignment_3", 2)]},
"student_3" :{"id":14,"Assignments":[("Assignment_1",0),("Assignment_2", 1), ("Assignment_3", 1)]}}
循环:
for student in students.values():
scores = [score for (assignment, score) in student["Assignments"]]
identify = int(student["id"])
if sum(scores)/len(scores) >=2.0:
print([identify])
【问题讨论】:
-
print(student['id'])?
标签: python loops dictionary nested