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

Python:如何从文本文件提取数据并存入列表?求更优方案

优化方案及原代码问题说明

首先要指出你原代码存在的bug:处理10这类多位数时,temp_x = x[2].replace(",","")会把"2,4,5,8,9,10,12,45"变成"24589101245",循环遍历每个字符时,10会被拆成1和0两个单独整数存入列表,这和你的需求不符。

下面是几种更简洁、健壮的实现方式:

方法一:针对固定格式的简洁写法

用with语句自动管理文件(无需手动关闭),直接提取等号后的值并转换:

x_values = []
y_values = []

with open('data.txt', 'r') as file:
    # 处理x行
    x_line = file.readline().strip()
    # 分割出等号后的部分,按逗号拆分字符串,再批量转整数
    x_values = [int(num) for num in x_line.split('=')[1].strip().split(',')]
    
    # 处理y行
    y_line = file.readline().strip()
    y_values = [int(num) for num in y_line.split('=')[1].strip().split(',')]

方法二:通用扩展写法(支持更多变量)

如果以后文件中可能新增其他变量,这种写法扩展性更强:

data = {}

with open('data.txt', 'r') as file:
    for line in file:
        line = line.strip()
        if not line:  # 跳过空行
            continue
        # 按第一个等号分割变量名和值部分
        var_name, values_part = line.split('=', 1)
        var_name = var_name.strip()
        # 拆分每个数值字符串并转整数
        values = [int(num.strip()) for num in values_part.split(',')]
        data[var_name] = values

# 提取需要的x、y值
x_values = data['x']
y_values = data['y']

为什么这些方法更优

  • 用with语句操作文件,自动处理文件关闭,避免资源泄漏
  • 直接按逗号拆分数值字符串,正确保留10这类多位数的完整性
  • 用列表推导式替代手动循环append,代码更简洁易读
  • 通用写法可适配更多变量行,无需修改核心逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 02:05:23