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

Python中对比两个列表计算匹配率出错,预期与实际结果不符

问题排查与代码修正

错误原因

你使用了嵌套循环,这会遍历答案册和学生答案的所有元素组合,只要值相等就加分,而非仅比对对应位置的答案。比如答案册里的每个"A"都会和学生答案里的所有"A"匹配加分,最终统计的是全局值匹配次数,而非位置匹配次数,导致分数计算完全错误。

修正方案

需要同时遍历两个列表的对应位置元素,可以用zip()函数将两个列表打包成对应元素对,逐个比对:

def get_test_score(answer_sheet, student_answers):
    score = 0
    # 同时遍历对应位置的答案对
    for correct_ans, student_ans in zip(answer_sheet, student_answers):
        if correct_ans == student_ans:
            score += 1
    # 计算匹配率百分比
    percentage = (score / len(answer_sheet)) * 100
    return percentage

验证测试用例

代入你的测试数据:

  • answer_sheet: ['A', 'A', 'C', 'D', 'D', 'B', 'C', 'D']
  • student_answers: ['A', 'B', 'C', 'A', 'D', 'B', 'C', 'D']

对应位置匹配的有第0、2、4、5、6、7位,共6个正确答案。计算得:(6/8)*100 = 75.0,与预期结果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 19:19:56