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

如何从存储学生姓名与成绩的列表中提取最高分对应条目

问题根源

你现在的mediafinal是一维列表,用extend([nome, mf])添加数据后,结构为[姓名1, 分数1, 姓名2, 分数2...],直接调用max()会将字符串和数字混合比较,既不符合按分数取最大值的需求,Python3环境下还会直接触发类型比较报错。

修复步骤

1. 调整mediafinal的数据结构

把原来的extend方法改成append,将每个学生的姓名和分数作为一个子元素存储,形成嵌套列表:

# 替换原代码里的 mediafinal.extend([nome, mf])
mediafinal.append([nome, mf])

2. 修改max()的取值规则

给max()添加key参数,指定按每个子元素的第二位(分数字段)进行大小比较:

if resposta.upper() == 'Y':
    melhor_aluno, nota_maxima = max(mediafinal, key=lambda x: x[1])
    print(f'O melhor aluno é: {melhor_aluno}, 最终分数为: {nota_maxima}')
    break

额外优化建议

原代码里用eval()转换输入的数值存在安全风险,建议统一替换为float()做类型转换,示例:

nota1 = float(input(f'Indique a nota do primeiro teste {nome}: '))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:45:01