如何读取元素间空格不固定的文件数据并转换为嵌套数字列表
问题原因
你现有代码的问题主要有三点:
line.strip().split("\n")没有把处理后的结果赋值给变量,相当于这行执行完没有生效,最后追加到列表的还是原始的带换行符的字符串- 用
split("\n")是按换行分割,完全不符合你拆分同行多个数值的需求 - 分割后得到的是字符串类型,还需要转成浮点型才能得到数值格式的结果
修正后的代码
result = [] with open("filename.txt", "r") as file: # 跳过第一行表头 file.readline() for line in file: # strip去掉首尾空白(包括换行符),split无参数默认按任意数量空白分割 str_values = line.strip().split() # 把每个字符串转成float,组成子列表再追加 float_values = [float(v) for v in str_values] result.append(float_values) print(result)
代码说明
split()不传参数的时候,会自动匹配任意长度的空格、制表符等空白字符作为分隔符,刚好适配你文件里空格数量不固定的场景,完全不用自己处理多空格的问题- 用列表推导式把分割得到的字符串批量转成float类型,就可以得到数值格式的子列表
- 尽量不要用
list作为变量名,这是Python内置的类型关键字,重名会覆盖原有功能,后续容易出奇怪的错误
运行上面的代码就能得到你想要的嵌套列表格式了。
内容的提问来源于stack exchange,提问作者fredericoamigo
相关产品推荐
相关产品推荐

