Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 28, 2019 16:42:30

catauggie
Зарегистрирован: 2019-06-28
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

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

Дана матрица NxM. Вывести номер строки, содержащей максимальное число одинаковых элементов.
Я написал такой код:

 from random import randint
N = int(input())
M = int(input())
lst=[[randint(1, 9) for i in range(N)] for i in range(M)]
for i in lst:
    print()
    for j in i:
        print (j, end=" ")
kol=0 #количество одинаковых элементов равно нулю
for i in range(N): #цикл по всем элементам матрицы
    for j in range(M):
        if lst[i][j]==lst[i][j+1]: #ЗДЕСЬ ВЫДАЕТСЯ ОШИБКА! я считал, что он так проверяет каждый последующий элемент в строке
            kol+=1 #накапливание 
print(kol)
Помогите иправить программу, чтоб она выводила индекс этой строки. Заранее большое спасибо

Отредактировано FishHook (Июнь 28, 2019 17:24:43)

Офлайн

#2 Июнь 28, 2019 17:29:05

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

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

catauggie
Помогите иправить программу, чтоб она выводила индекс этой строки. Заранее большое спасибо
Ошибка у вас потому, что если вы к индексу последнего элемента j прибавите единицу, то получите выход за пределы списка. Надо проверять, что такой элемент существует. Но, надо сказать, ваша программа вовсе не решает поставленной задачи.



Офлайн

#3 Июнь 29, 2019 22:25:18

panama555
Зарегистрирован: 2019-02-19
Сообщения: 175
Репутация: +  4  -
Профиль   Отправить e-mail  

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

примерно так:

 from random import randint
N = int(input("кол столбцов"))
M = int(input("кол строк"))
lst=[[randint(1, 9) for i in range(N)] for i in range(M)]
print(lst)
for i in lst:
    print()
    for j in i:
        print (j, end=" ")
kol=0 #количество одинаковых элементов равно нулю
num_str=0# индекс строки
for i in range(M): #цикл по всем элементам матрицы
    for j in range(N):
        kol_new=lst[i].count(lst[i][j])# подсчитываю кол-во определённого [i][j] символа в i-строке
        if kol_new>kol: # если больше, то
            kol=kol_new # заменить максимальное число
            num_str=i   # и запомнить индекс строки в которой сейчас находимся
print()
print(num_str)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version