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

如何用Python从三个不等长列表生成学生考试成绩嵌套字典

实现方案

注意:Python字典的键具有唯一性,你给出的目标结构中存在两个同名学生F,最终生成的字典只会保留最后一个F的成绩,若需要保留所有同名学生数据,建议给学生标识添加唯一后缀区分。

方案1:Pandas内置方法(最简便)

直接调用Pandas自带的字典转换方法,一行代码即可实现目标结构:

dd = df.set_index('Student').to_dict('index')

参数orient='index'会自动将行索引(学生名)作为外层字典的键,列名(考试名)作为内层字典的键,对应单元格数值作为内层字典的值。

方案2:使用zip函数手动实现

如果要按你的思路用zip函数实现,只需要先获取每个学生对应的成绩列表即可:

  1. 首先提取所有学生的成绩列表,得到6个元素的嵌套列表,每个子元素为单个学生3门考试的分数:
score_list = df[assignments].values.tolist()
  1. 嵌套使用zip生成双层字典:
dd = {
    student: dict(zip(assignments, scores)) 
    for student, scores in zip(students, score_list)
}

原理说明:

  • 外层zip(students, score_list)将每个学生和自己的3门成绩列表一一配对
  • 内层zip(assignments, scores)将考试名和对应分数一一配对,生成单个学生的成绩字典

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 14:39:04