Python入门:实现统计n*n矩阵全零行全零列的null(A)函数
解决方案
思路拆解
- 统计全零行:遍历矩阵的每一行,判断该行所有元素是否均为0。用Python内置的
all()函数可以简化判断——all(num == 0 for num in row)会在该行所有元素都是0时返回True,否则返回False,统计返回True的行数即可。 - 统计全零列:因为是n*n矩阵,列数等于行数。遍历每一列的索引,检查该列的所有元素是否都是0:可以用嵌套循环,外层遍历列索引,内层遍历每一行的对应列元素,一旦发现非零元素就提前终止循环,减少不必要的计算。
完整代码
def null(A): # 统计全零行数量 zero_rows = 0 for row in A: if all(num == 0 for num in row): zero_rows += 1 # 统计全零列数量 n = len(A) zero_cols = 0 for col_idx in range(n): all_zero = True for row in A: if row[col_idx] != 0: all_zero = False break if all_zero: zero_cols += 1 return [zero_rows, zero_cols]
代码说明
- 全零行的判断用
all()函数,是入门阶段简洁易读的写法,不需要复杂逻辑。 - 全零列的判断加入了提前终止的逻辑,一旦找到非零元素就跳出内层循环,提升效率的同时也符合基础语法的要求。
- 全程使用Python原生语法,不需要任何额外库,完全适配入门课程的要求。
测试示例
比如输入以下测试矩阵:
test_matrix = [ [0, 0, 0], [1, 0, 3], [0, 0, 0] ] print(null(test_matrix)) # 输出 [2, 1]
该矩阵包含2行全零、1列全零,输出结果符合预期。
内容的提问来源于stack exchange,提问作者mari00
相关产品推荐
相关产品推荐

