Python如何从文件读取float与string并保留数据类型生成元组列表
解决方法
你之前的代码将所有分割后的字段统一转为float类型,现在只需要拆分每行内容后,单独对前两列做浮点型转换,第三列直接保留原始字符串即可。
可读性优先的写法
with open('data/example.txt') as f: dataset = [] for line in f: # 去除行首尾换行、空白字符后按逗号分割 parts = line.strip().split(',') # 前两列转float,第三列保留字符串,拼接为元组 dataset.append((float(parts[0]), float(parts[1]), parts[2]))
简洁列表推导式写法
with open('data/example.txt') as f: dataset = [(float(p[0]), float(p[1]), p[2]) for p in (line.strip().split(',') for line in f)]
如果你需要和你给出的示例输出完全一致(前两列也保留字符串类型),直接去掉浮点转换即可:
with open('data/example.txt') as f: dataset = [tuple(line.strip().split(',')) for line in f]
异常兼容处理
如果文件存在空行、字段数量异常的行,可以增加过滤逻辑避免报错:
with open('data/example.txt') as f: dataset = [] for line in f: line = line.strip() # 跳过空行 if not line: continue parts = line.split(',') # 仅处理字段数量符合要求的行 if len(parts) == 3: dataset.append((float(parts[0]), float(parts[1]), parts[2]))
内容的提问来源于stack exchange,提问作者Blumie
相关产品推荐
相关产品推荐

