m, n = map(int, input().split()) matrix = [] for i in range(m): row = list(map(int, input().split())) matrix.append(row) rowZeroCount = [0] * m colZeroCount = [0] * n for i in range(m): for j in range(n): if matrix[i][j] == 0: rowZeroCount[i] += 1 colZeroCount[j] += 1 print(len(list(filter(lambda val: val >= n // 2, rowZeroCount)))) print(len(list(filter(lambda val: val >= m // 2, colZeroCount)))) 代码解析
时间: 2024-04-16 07:25:14 浏览: 128
input_input().split()_input_split_mapReduce_java_
这段代码的功能是解析输入的矩阵,并计算出满足条件的行数和列数。
首先,通过`map`函数和`input().split()`将输入的两个整数赋值给变量m和n。
接下来,定义一个空列表`matrix`用于存储矩阵的行。
然后,使用两个嵌套的for循环,对于每一行,通过`map`函数和`input().split()`将输入的数字列表转换为整数列表,并将该行添加到`matrix`中。
接下来,创建两个长度为m和n的列表`rowZeroCount`和`colZeroCount`并初始化为0,用于记录每行和每列中0的数量。
然后,再次使用两个嵌套的for循环遍历矩阵中的每个元素。如果元素为0,则将相应的行计数器和列计数器加1。
最后,使用`filter`函数和`lambda`表达式,过滤出满足条件的行计数器和列计数器,并使用`len`函数计算出满足条件的行数和列数,并打印输出。
代码解析完毕!如果你有任何问题,请随时提问。
阅读全文