如何批量将Python嵌套字典中的所有学生成绩值统一减5
实现方案
方案1:直接修改原字典(内存占用低,适合不需要保留原始成绩的场景)
通过两层循环遍历所有班级和学生,直接修改成绩值即可:
# 遍历所有班级的成绩字典 for student_scores in class_grade.values(): # 遍历当前班级每个学生的成绩,统一减5 for stu_name in student_scores: student_scores[stu_name] -= 5
修改完成后可以打印验证结果,比如原classB的Fani成绩为97,修改后打印class_grade['classB']['Fani']会得到92,符合预期。
方案2:生成新字典(不改动原始数据,适合需要留存原成绩的场景)
使用嵌套字典推导式一行完成批量调整,生成全新的成绩字典:
adjusted_grade = { class_name: {stu: score -5 for stu, score in scores.items()} for class_name, scores in class_grade.items() }
调整后的成绩全部存储在adjusted_grade变量中,原class_grade的数据不会发生任何变化。
内容的提问来源于stack exchange,提问作者Insan Cahya
相关产品推荐
相关产品推荐

