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

如何在控制台将矩阵相加的两个矩阵及结果按行对齐打印在同一行

矩阵对应行对齐打印实现方案

需求说明:需要将两个输入矩阵与相加后的结果矩阵的对应行打印在同一行,每行包含三个矩阵的对应行,并在中间行正确显示+和=运算符,替代原代码中单独打印矩阵和运算符的方式。

原代码

matrix1 = [[1, 2, 3],
           [3, 2, 1],
           [4, 5, 6]]

matrix2 = [[1, 1, 1],
           [1, 1, 1],
           [1, 1, 1]]

matrix3 = [[2, 3, 4],
           [4, 3, 2],
           [5, 6, 7]]

for row in matrix1: print(row)
print('    +')
for row in matrix2: print(row)
print('    =')
for row in matrix3: print(row)

期望输出

[1, 2, 3]      [1, 1, 1]    [2, 3, 4]
[3, 2, 1]  +   [1, 1, 1] =  [4, 3, 2]
[4, 5, 6]      [1, 1, 1]    [5, 6, 7]

解决方案代码

matrix1 = [[1, 2, 3],
           [3, 2, 1],
           [4, 5, 6]]

matrix2 = [[1, 1, 1],
           [1, 1, 1],
           [1, 1, 1]]

matrix3 = [[2, 3, 4],
           [4, 3, 2],
           [5, 6, 7]]

# 获取矩阵中间行索引,适配任意奇数行矩阵
middle_idx = len(matrix1) // 2

# 同时遍历三个矩阵的对应行
for idx, (row1, row2, row3) in enumerate(zip(matrix1, matrix2, matrix3)):
    row1_str = str(row1)
    row2_str = str(row2)
    row3_str = str(row3)
    
    # 中间行显示运算符,其余行用等宽空格占位对齐
    if idx == middle_idx:
        operator = "  +   "
        equal_sign = " =  "
    else:
        operator = "      "  # 和"+"区域等宽
        equal_sign = "    "   # 和" = "区域等宽
    
    # 格式化打印整行内容
    print(f"{row1_str}{operator}{row2_str}{equal_sign}{row3_str}")

实现思路

  1. 用zip()同时获取三个矩阵的对应行,保证每行的三个行元素一一对应;
  2. 通过len(matrix1)//2获取中间行索引,适配任意奇数行的矩阵;
  3. 中间行显示+和=,其余行用等宽空格占位,确保整体排版对齐;
  4. 利用f-string拼接所有元素,实现一行内打印三个矩阵的对应行与运算符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 16:52:26