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

Python新手求助:从文本文件生成指定格式数组

解决方法

你的代码问题分析

  1. 结构初始化错误:你需要的是字典结构,但把my_output初始成了列表,而且append的用法完全错了——列表的append是实例方法,得写成my_output.append(xxx),不能直接赋值my_output = append(id)。
  2. 未按ID分组:没有实现“以ID为键、对应数据列表为值”的核心逻辑,只是单纯想把行数据塞进列表。
  3. 数据类型未转换:读取到的所有内容都是字符串,没有转换成要求的int、float类型。

正确代码实现

# 初始化空字典,用来按ID存储对应的数据列表
my_output = {}

with open("textile.txt") as f:
    for line in f:
        # 去掉换行符,按逗号分割每行数据
        raw_data = line.strip().split(',')
        
        # 按照要求转换各字段类型
        record_id = int(raw_data[0])
        date = raw_data[1]
        temperature = float(raw_data[2])
        # 剩下的字段全部转成int
        rest = [int(item) for item in raw_data[3:]]
        
        # 组装成一条符合格式的记录
        single_record = [date, temperature] + rest
        
        # 按ID分组存储:如果ID不在字典里,先创建空列表
        if record_id not in my_output:
            my_output[record_id] = []
        my_output[record_id].append(single_record)

# 打印结果
print(my_output)

代码解释

  • 用字典my_output替代列表,专门用来实现“ID: [记录列表]”的结构。
  • 逐行读取文件后,拆分并转换每个字段的类型,严格匹配你要求的int(ID)、str(日期)、float(体温)、int*5的类型组合。
  • 通过判断ID是否存在于字典中,实现分组:不存在就新建空列表,存在就直接追加记录。

运行后得到的结果就是你期望的字典结构,每个ID对应其所有的有效记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 02:20:17