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

Python读取TXT文件中x、y值至二维数组/字典等数据结构的方法

读取文本中的x、y值到二维数组或字典的Python方案

嘿,作为Python新手遇到这种问题太正常了,咱们先揪出你代码里的几个小问题:

  • 你用n, r, t = line.strip().split(' ')拆分了每行,但后面却用了没定义的k和v,变量名完全不匹配
  • 如果每行是x y两个值的格式,拆分后应该对应两个变量,不是三个哦

接下来给你两种简洁好懂的解决方案,按需选择就行:

方案1:读取到二维数组(列表的列表)

如果你的文本每行是x y这样的数值对,用列表推导式就能快速生成二维数组,还能自动处理空行:

# 用with语句打开文件,会自动帮你关闭,避免忘记关文件的问题
with open('text.txt', 'r') as f:
    # 每行拆分后转成浮点数,组成二维列表(要整数就把float换成int)
    xy_array = [list(map(float, line.strip().split())) for line in f if line.strip()]

小解释:

  • line.strip():去掉每行前后的空格、换行符
  • split():默认按任意空格拆分(不管是1个还是多个空格都能处理)
  • map(float, ...):把拆分出来的字符串转成数值类型
  • if line.strip():跳过空行,避免生成空列表出错

方案2:读取到字典(x为键,y为值)

如果想把x和y存成键值对,假设每行第一个值是x,第二个是y,普通循环版和简洁推导式版都给你:

普通循环版(新手更易理解)

with open('text.txt', 'r') as f:
    xy_dict = {}
    for line in f:
        line_content = line.strip()
        if not line_content:
            continue  # 跳过空行
        x_str, y_str = line_content.split()
        # 转成数值类型,按需换int
        xy_dict[float(x_str)] = float(y_str)

简洁推导式版

with open('text.txt', 'r') as f:
    xy_dict = {float(x): float(y) for x, y in (line.strip().split() for line in f if line.strip())}

额外小提示

如果你的文本开头有注释行(比如非x、y的说明内容),可以先跳过这些行,比如要跳过前2行:

with open('text.txt', 'r') as f:
    # 跳过前2行注释
    next(f)
    next(f)
    xy_array = [list(map(float, line.strip().split())) for line in f if line.strip()]

这样就能精准读取你需要的x、y数据啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:35:30