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

如何用Python将指定格式文本文件转换为嵌套字典?

用Python将文本文件转换为嵌套字典

需求说明

有如下格式的文本文件内容:

subjects ENGLISH, MATHS, SCIENCE

Joe, A, A, B

Dave, A, B, C

Will, D, D, E

需要将其转换为如下结构的嵌套字典:

{'Joe':{'ENGLISH':'A','MATHS':'A','SCIENCE':'B'},'Dave':{'ENGLISH':'A','MATHS':'B','SCIENCE':'C'},'Will':{'ENGLISH':'D','MATHS':'D','SCIENCE':'E'}}

实现代码

可以通过以下代码完成转换操作:

# 读取目标文本文件(替换为你的文件路径)
with open('scores.txt', 'r') as file:
    # 过滤空行并去除每行首尾空白
    valid_lines = [line.strip() for line in file if line.strip()]

# 提取科目名称列表
subjects_line = valid_lines[0]
subjects = subjects_line.split()[1].split(', ')

# 构建嵌套字典
student_scores = {}
for line in valid_lines[1:]:
    # 分割每行内容,去除每个元素的空白
    elements = [item.strip() for item in line.split(',')]
    student_name = elements[0]
    scores = elements[1:]
    # 将科目与成绩配对,生成子字典
    student_scores[student_name] = dict(zip(subjects, scores))

# 输出结果
print(student_scores)

关键步骤说明

  • 文件读取与预处理:使用with语句安全读取文件,同时过滤掉空行,避免处理无效内容
  • 科目提取:从第一行中拆分出科目名称,作为子字典的键
  • 字典构建:遍历每行学生数据,拆分出姓名和对应成绩,利用zip()函数将科目与成绩快速配对,生成每个学生的成绩子字典,最终整合为外层字典

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 03:45:33