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

如何将文本文件中的姓名分数数据转换为Python字典

代码调整方案

你原代码存在的问题如下:

  • 变量dt_stu初始化为列表([]),列表仅支持下标索引访问,不支持键值对赋值,需改为字典类型初始化{}
  • line.split([0:9])语法错误,split()方法接收的参数为分隔符,默认按任意空白字符拆分,你写的切片语法完全不符合方法入参要求
  • 没有处理文件资源关闭逻辑,容易引发资源泄漏风险
  • 读取到的分数为字符串格式,无法直接参与数值计算,建议转换为浮点数更实用

你可以直接使用以下调整后的代码:

dt_stu = {}
# 使用with上下文管理器自动管理文件句柄,操作完成后自动关闭文件
with open(r"C:\Users\kwokw\Downloads\student_avg.txt", 'r', encoding='utf-8') as infile:
    for line in infile:
        # 先去除行首尾的换行、空格等空白字符,再按空白拆分
        parts = line.strip().split()
        # 前N-1个元素拼接为完整姓名作为键,最后一个元素转浮点数作为分数值
        stu_name = ' '.join(parts[:-1])
        avg_score = float(parts[-1])
        dt_stu[stu_name] = avg_score

print(dt_stu)

运行后输出的字典结果为:

{'Paul Velma': 63.0, 'Mcgee Kibo': 71.0, 'Underwood Louis': 62.75, 'Clemons Phyllis': 57.5}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 23:36:04