@beckmiller

Вывести номер строки, содержащей максимальное число одинаковых элементов. Как сделать?

Привет!
Дана матрица M x N. Вывести номер строки, содержащей максимальное число одинаковых элементов. Почему один раз выводит 0 потом ту строку которая надо. И как добавить else в случае нету повторяющие элементы. Не смог сделать это Дайте свои варианты пожалуйста
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
  • Вопрос задан
  • 74 просмотра
Пригласить эксперта
Ответы на вопрос 1
@ScriptKiddo
import random
from collections import Counter
n = 5
m = 5
matrix = [[random.randrange(0, 10) for y in range(n)] for x in range(m)]
print(*matrix, sep='\n')
most_common = [(i, Counter(x).most_common(1)[0]) for i, x in enumerate(matrix, start=1)]
print('(row_number, (element, count))')
print(*sorted(most_common, key=lambda x: int(x[1][1]), reverse=True), sep='\n')
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы