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

Python实现:将含硬编码换行的数字字符串转为矩阵

解决矩阵生成问题的思路与代码调整

我明白你的困扰啦——你已经完成了按行分割字符串,也知道怎么把一串数字字符串转成整数列表,但不知道怎么把这两个操作结合起来生成二维矩阵对吧?其实核心就是把你写的数字转换逻辑逐行复用,而不是直接作用在整个字符串上。

我们来调整一下你的Matrix类代码:

class Matrix:
    def __init__(self, matrix_string):
        # 初始化存储矩阵的列表
        self.matrix = []
        # 按换行符分割输入字符串,得到每一行的内容
        lines = matrix_string.splitlines()
        
        # 遍历每一行,逐行处理成数字列表
        for line in lines:
            # 1. 去掉行首尾的空白字符(避免开头/结尾的空格导致分割出空字符串)
            # 2. 按空白字符分割成单个数字字符串(自动处理多个空格的情况)
            # 3. 把每个数字字符串转成整数,组成该行的列表
            row = [int(num) for num in line.strip().split() if num.isdigit()]
            # 将处理好的行添加到矩阵中
            self.matrix.append(row)

代码解释

  • splitlines():把输入的带换行的字符串拆分成每行的字符串列表,比如输入" 1 8 7 \n 6 18 2 \n 1 9 7 "会得到[" 1 8 7 ", " 6 18 2 ", " 1 9 7 "]。
  • line.strip():去除每行首尾的空格,确保我们不会因为行首/行尾的空白而分割出空字符串。
  • split():不带参数时会自动按任意数量的空白字符分割(包括单个空格、多个空格、制表符等),完美适配输入里的格式。
  • 列表推导式[int(num) for num ...]:把每行分割后的数字字符串逐个转成整数,组成该行的列表,再添加到总矩阵里。

示例使用

input_str = " 1 8 7 \n 6 18 2 \n 1 9 7 "
my_matrix = Matrix(input_str)
print(my_matrix.matrix)  # 输出: [[1, 8, 7], [6, 18, 2], [1, 9, 7]]

这样就完全实现了你想要的矩阵生成功能,而且完全是手动实现,符合你练习的需求~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 10:48:09