如何通过两个列表的元素比较返回[x,y]格式的双整数得分
列表对比得分计算问题修复
需求说明
给定两个长度相同的列表,按索引位置一一对应比较元素,最终返回格式为 [x, y] 的得分数组:
- 若当前索引下a列表元素大于b列表元素,x加1分
- 若当前索引下a列表元素小于b列表元素,y加1分
- 元素相等时双方均不得分
测试用例:
a = [2,4,6]、b = [3,4,5],预期输出结果为[1,1]
原代码存在的问题
- 逻辑错误:使用双层for循环,把两个列表的所有元素两两对比,而非按索引一一对应比较,会导致得分计算完全不符合规则
- 返回值错误:
score_数组在x、y初始化时就赋值为[0,0],后续x、y的更新不会同步到该数组中,最终永远返回初始值 - 无效代码:else分支中
a[m] == b[n]是无意义的判断语句,没有实际作用 - 语法错误:return语句缩进不符合Python规范,运行会直接报错
修复后代码
def return_score_comparison(): a = [2, 4, 6] b = [3, 4, 5] x = 0 y = 0 # 按索引一一配对遍历两个列表 for a_item, b_item in zip(a, b): if a_item > b_item: x += 1 elif a_item < b_item: y += 1 return [x, y]
运行验证
调用return_score_comparison()得到结果[1,1],完全符合预期:
- 索引0:2<3 → y得1分
- 索引1:4=4 → 无得分
- 索引2:6>5 → x得1分
内容的提问来源于stack exchange,提问作者Tshimologo King Mab
相关产品推荐
相关产品推荐

