You need to enable JavaScript to run this app. Python中如何实现从学生字典集合返回最高平均成绩学生的函数
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何实现从学生字典集合返回最高平均成绩学生的函数

实现方案
  • 核心目标是编写固定接收4个学生字典作为入参的函数,筛选出其中平均成绩最高的学生并返回
  • 现有create_student生成的标准化字典中,media字段直接存储了学生的平均成绩,无需额外重复计算,可直接作为对比依据
  • Python内置的max()函数支持通过key参数自定义对比规则,是实现该需求最简洁高效的方式,无需手动编写循环做大小判断
完整可运行代码
def create_student(nom: str, cod: str, gen: str, carr: str, media: float, ssc: float) -> dict:
    dic_student = {"name": nom,
                   "code": cod,
                   "sex": gen,
                   "career": carr,
                   "media": media,
                   "ssc": ssc}
    return dic_student

# 目标函数:接收4个学生字典作为入参,返回平均成绩最高的学生
def get_top_student(stu1: dict, stu2: dict, stu3: dict, stu4: dict) -> dict:
    # 以media字段值作为对比排序的依据,选出最大值对应的学生
    return max(stu1, stu2, stu3, stu4, key=lambda student: student["media"])

# Main program
student1 = create_student("Juan Pérez", "201824736", "male", "Biology", 3.78, 0.7)
student2 = create_student("Ana Gavalda", "201724736", "female", "political science", 4.25, 3.5)
student3 = create_student("Bastien Bosa", "201815217", "male", "Economy", 3.21, 2.3)
student4 = create_student("Catalina Gómez", "201715400", "female", "Art", 3.8, 4)

# 调用函数获取最高平均成绩的学生
top_student = get_top_student(student1, student2, student3, student4)
print(f"平均成绩最高的学生为:{top_student['name']},对应平均成绩{top_student['media']}")
可调优说明
  • 如果后续需要结合ssc字段计算综合评分(比如按权重折算后对比),只需要修改max函数里的key逻辑即可。例如综合分规则为media占80%、ssc占20%时,只需将lambda表达式改为lambda student: student["media"] * 0.8 + student["ssc"] * 0.2,无需调整函数整体结构
  • 本次示例中四个学生的平均成绩分别为3.78、4.25、3.21、3.8,函数运行后会自动返回Ana Gavalda对应的学生字典

内容的提问来源于stack exchange,提问作者Santiago Ramos Vargas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.30 22:15:02