You need to enable JavaScript to run this app. Python matrix_equal函数for loop转while loop实现方法
优惠活动
大模型
产品
解决方案
定价
更多

Python matrix_equal函数for loop转while loop实现方法

矩阵相等判断函数循环改写

核心需求:将原Python实现中的for循环替换为while循环,严格遵循题目禁止使用for循环的要求,完整保留原有矩阵比较逻辑,遵守给定的实现约束。

待改写的原始代码

def matrix_equal(matrix1, matrix2):
    """
    -------------------------------------------------------
    比较两个矩阵是否完全相等,即所有对应位置的元素完全一致
    调用方式:equal = matrix_equal(matrix1, matrix2)
    -------------------------------------------------------
    参数:
        matrix1 - 第一个矩阵(二维列表)
        matrix2 - 第二个矩阵(二维列表)
    返回:
        equal - 两个矩阵相等返回True,否则返回False(布尔值)
    ------------------------------------------------------
    """
    equal = True
    if((len(matrix1) != len(matrix2)) or (len(matrix1[0]) != len(matrix2[0]))):
        equal = False
    for x in range(len(matrix1)):
        if(equal == False):
            break
        for y in range(len(matrix1[0])):
            num1 = matrix1[x][y]
            num2 = matrix2[x][y]
            if(num1 != num2):
                equal = False
                break
    return equal

测试样例

第一个矩阵:
      0    1    2
 0    c    a    t
 1    d    o    g
 2    b    i    g

第二个矩阵:
      0    1    2
 0    c    a    t
 1    d    o    g
 2    b    i    g

矩阵判断结果:True

实现约束

  • 函数内部不得调用input方法
  • 函数内部不得调用print方法
  • 代码中不得存在多个return语句

改写后的while循环实现

def matrix_equal(matrix1, matrix2):
    """
    -------------------------------------------------------
    比较两个矩阵是否完全相等,即所有对应位置的元素完全一致
    调用方式:equal = matrix_equal(matrix1, matrix2)
    -------------------------------------------------------
    参数:
        matrix1 - 第一个矩阵(二维列表)
        matrix2 - 第二个矩阵(二维列表)
    返回:
        equal - 两个矩阵相等返回True,否则返回False(布尔值)
    ------------------------------------------------------
    """
    equal = True
    # 先校验矩阵行列尺寸是否一致
    row_count = len(matrix1)
    col_count = len(matrix1[0])
    if (row_count != len(matrix2)) or (col_count != len(matrix2[0])):
        equal = False
    # 外层while循环遍历行
    x = 0
    while x < row_count:
        if not equal:
            break
        # 内层while循环遍历列
        y = 0
        while y < col_count:
            num1 = matrix1[x][y]
            num2 = matrix2[x][y]
            if num1 != num2:
                equal = False
                break
            y += 1
        x += 1
    return equal

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.28 07:45:04