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

Python字典值替换技术问题:如何按分数阈值替换为对应等级

修正字典分数转等级的代码实现

原代码存在的问题

  • 遍历字典时错误使用values(),无法通过分数定位到对应的科目键(字典的键是科目名称,不是分数)
  • 误用字典的update()方法:该方法用于合并字典,不能直接替换单个键的值
  • 函数未返回处理后的字典,主程序调用后无法获取结果

修正后的代码

模块classifygrade.py中的函数

def classify_grade(module_marks):
    # 遍历每个科目及其分数
    for subject, score in module_marks.items():
        if score >= 70:
            module_marks[subject] = "distinction"
        elif score >= 60:
            module_marks[subject] = "merit"
        elif score >= 50:
            module_marks[subject] = "pass"
        else:
            module_marks[subject] = "fail"
    # 返回处理后的字典
    return module_marks

主程序代码

module_1 = "Maths"
module_2 = "English"
module_3 = "Science"
module_4 = "Business"
module_5 = "PE"

mark_1 = 20
mark_2 = 30
mark_3 = 40
mark_4 = 50
mark_5 = 60

# 构建科目-分数字典,无需额外int转换
module_marks = {
    module_1: mark_1,
    module_2: mark_2,
    module_3: mark_3,
    module_4: mark_4,
    module_5: mark_5
}

# 导入模块并调用函数
import classifygrade
marks = classifygrade.classify_grade(module_marks)

# 打印验证结果
print(marks)

修正说明

  1. 使用items()遍历字典的键值对,直接获取科目(键)和对应的分数(值),确保能正确定位到要修改的条目
  2. 通过module_marks[subject] = 等级的方式直接替换值,替代错误的update()用法
  3. 函数添加返回语句,让主程序可以接收处理后的结果
  4. 移除不必要的int()转换,因为mark变量本身已是整数类型

内容的提问来源于stack exchange,提问作者Cbrady

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 16:05:31