You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编写convertMarks函数:将学生成绩字典转换为等级字典

实现分数转等级的convertMarks函数

需求说明

给定一个嵌套字典,外层键为学生姓名,内层嵌套字典的键为科目、值为分数,需要编写convertMarks函数,将所有分数替换为对应等级。等级规则(包含两端点):

  • A:91-100
  • B:81-90
  • C:71-80
  • D:61-70
  • E+:51-60
  • E:41-50
  • F:0-40

示例输入:

{'Lakshman': {'Maths': 90, 'English': 75, 'Social Science': 10}}

示例输出:

{'Lakshman': {'Maths': 'B', 'English': 'C', 'Social Science': 'F'}}

解决方案代码

def convertMarks(student_marks):
    # 定义分数区间与等级的对应关系,按分数从高到低排列
    grade_rules = [
        (91, 100, 'A'),
        (81, 90, 'B'),
        (71, 80, 'C'),
        (61, 70, 'D'),
        (51, 60, 'E+'),
        (41, 50, 'E'),
        (0, 40, 'F')
    ]
    
    result = {}
    for student, subjects in student_marks.items():
        student_grades = {}
        for subject, score in subjects.items():
            # 遍历等级规则,匹配对应等级
            for min_score, max_score, grade in grade_rules:
                if min_score <= score <= max_score:
                    student_grades[subject] = grade
                    break
        result[student] = student_grades
    return result

代码说明

  1. 等级规则定义:用列表存储每个等级的分数区间和对应等级,按分数从高到低排列,匹配时一旦找到符合区间即可跳出循环,提升效率。
  2. 嵌套字典遍历:外层遍历每个学生,内层遍历该学生的所有科目分数,逐个转换为等级。
  3. 区间匹配:通过min_score <= score <= max_score判断分数所属区间,匹配成功后立即赋值并终止当前等级遍历,避免无效计算。

测试验证

用示例输入测试函数:

test_input = {'Lakshman': {'Maths': 90, 'English': 75, 'Social Science': 10}}
print(convertMarks(test_input))
# 输出:{'Lakshman': {'Maths': 'B', 'English': 'C', 'Social Science': 'F'}}

内容的提问来源于stack exchange,提问作者Rama Krishna Mandapaka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 03:20:13