python - 矩阵,怎么解决?
问题描述
给定矩阵 M x N。如何打印包含最大相同元素数的行号?
import random
n = int(input('Введите кол-во столбцов матрицы: '))
m = int(input('Введите кол-во строк матрицы: '))
matrix = [[random.randrange(0, 10) for y in range(n)] for x in range(m)]
print(matrix)
max_x = 0
for i in range(n):
for j in range(m):
if max_x < matrix[i].count(matrix[i][j]):
print(matrix.index(matrix[i]))
max_x = matrix[i].count(matrix[i][j])
else:
break
解决方案
import random
n = int(input('Введите кол-во столбцов матрицы: ')) #columns
m = int(input('Введите кол-во строк матрицы: ')) #rows
matrix = [[random.randrange(0, 10) for y in range(n)] for x in range(m)]
for i in range(m):
for j in range(n):
print(matrix[i][j], end = " ")
print()
max_x = 0
for i in range(m):
for j in range(n):
if max_x < matrix[i].count(matrix[i][j]):
max_x = i
print(max_x)
如果 M 的行数比你的第一个 for i in range 需要是 m 值。
我假设变量 max_x 是按行搜索的,按行是指行。如果是这种情况,则在 max_x 中保存具有最大相同数的行。检查是否max_x < matrix[i].count(matrix[i][j])
然后保存该行的索引max_x = matrix.index(matrix[i])
。
注意:在这种情况下,它会保存具有最多相同数字的第一行的索引。