Найти - Пользователи
Полная версия: Проблема с выводом результата матрицы.
Начало » Центр помощи » Проблема с выводом результата матрицы.
1
Xryst
Разработать функцию saddle_point(matrix), которая принимает 1 аргумент – прямоугольную матрицу целых чисел, заданную в виде списка списков, и возвращает тьюпл с координатами “точки седла” переданной матрицы или логическую константу False, если такой точки не существует.
Вот код:
def saddle_point(matrix):
    count, last=0,0
    for i in matrix:
        
        if i.count(min(i)) == 1:
            m=i.index(min(i))
            col=[]
            for j in matrix:
               
                col.append(j[m])
            
            if col.count(max(col)) == 1 and min(i) == max(col):
               
                result=(str(m), str(col.index(max(col))))
               
                count+=1
        if count > last:
            last=count
            print (', '.join(result))
    
    if count == 0:
        print ('False')
Проблема в следующим, ввожу данные:
saddle_point([,])
Возращает: false, и по чему то выводится None.

Как убрать None ???
terabayt
def saddle_point(matrix):
    count, last=0,0
    for i in matrix:
        
        if i.count(min(i)) == 1:
            m=i.index(min(i))
            col=[]
            for j in matrix:
               
                col.append(j[m])
            
            if col.count(max(col)) == 1 and min(i) == max(col):
               
                result=(str(m), str(col.index(max(col))))
               
                count+=1
        if count > last:
            last=count
            return ', '.join(result)
    
    if count == 0:
        return 'False'
нужно заменить print на return, так как в условии сказано возвращать а не выводить
P. S. код не работоспособность не проверял
Xryst
Xryst
return ‘, ’.join(result)

if count == 0:
return ‘False’
Не подскажешь, как перевесть ‘,’ в int
terabayt
Xryst
Не подскажешь, как перевесть ‘,’ в int
а зачем переводить ее в строку чтобы потом перевести ее в инт?
result=(str(m), str(col.index(max(col))))
вот так
def saddle_point(matrix):
    count, last=0,0
    for i in matrix:
        
        if i.count(min(i)) == 1:
            m=i.index(min(i))
            col=[]
            for j in matrix:
               
                col.append(j[m])
            
            if col.count(max(col)) == 1 and min(i) == max(col):
               
                result=(m, col.index(max(col)))
               
                count+=1
        if count > last:
            last=count
            return result
    
    if count == 0:
        return 'False'
Xryst
terabayt
а зачем переводить ее в строку чтобы потом перевести ее в инт?
resultstr(m), str(col.index(max(col))))
Перевол потому как не знал как вывесть в таком формате 0,0
Как говорится с глупил
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB