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
相关产品推荐
相关产品推荐

