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

Python读取txt文件并拆分数据为两个矩阵的技术问题

问题解决:拆分文本文件为两个矩阵

输入与需求

输入文件input.txt内容:

3 3
1 3 3 | 3
2 7 8 | 4
1 5 1 | 5

需要将数据拆分为两个矩阵:

1 3 3
2 7 8
1 5 1

3
4
5

原代码问题分析

你写的代码存在三个核心问题:

  • main_matrix=tmp_matrix是直接赋值而非追加,循环结束后只会保留最后一行数据
  • 用line[0:row+2]截取字符串的方式完全不可靠,数字位数变化时会导致截取错误
  • 完全没有处理右侧子矩阵的逻辑

修正后的代码

# 打开文件并读取内容
with open("input.txt", "r") as f:
    # 读取第一行,获取行列数
    first_line = f.readline().strip()
    row, col = map(int, first_line.split())
    
    main_matrix = []
    sub_matrix = []
    
    # 读取后续每一行数据
    for _ in range(row):
        line = f.readline().strip()
        # 按|分割左右两部分
        left_part, right_part = line.split("|")
        # 处理主矩阵:分割字符串转整数列表
        main_row = list(map(int, left_part.strip().split()))
        main_matrix.append(main_row)
        # 处理子矩阵:分割字符串转整数
        sub_val = int(right_part.strip())
        sub_matrix.append(sub_val)

# 打印主矩阵
for row_data in main_matrix:
    print(" ".join(map(str, row_data)))
print()
# 打印子矩阵
for val in sub_matrix:
    print(val)

代码说明

  • 使用with语句自动管理文件关闭,避免资源泄漏
  • 用split("|")精准分割每行的左右两部分,替代不可靠的索引截取
  • 通过append()方法向矩阵中添加行数据,保留所有行
  • 分别处理主矩阵(多列)和子矩阵(单列)的转换逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 22:01:09