Эти словесные выкрутасы - просто жесть. Надо в каждой строке матрицы поменять максимальный элемент с элементом главной диагонали, или что?
И что значит "дан список"? Кем дан, в каком формате?
Код:
def exchmaxdiag(r, i):
j = max(range(len(r)), key = r.__getitem__)
n, x = min(i, j), max(i, j)
return r if j == i else r[:n] + r[x:x+1] + r[n+1:x] + r[n:n+1] + r[x+1:]
k = int(input())
m = [[int(s) for s in input().split()] for _ in range(k)]
print(*(''.join(map('%2d'.__mod__, exchmaxdiag(r, i))) for i, r in enumerate(m)), sep = '\n')
Пример:
5
1 2 3 4 5
7 8 9 1 2
3 4 5 6 1
2 3 4 5 6
9 8 7 6 5
(вводим количество строк, затем - элементы каждой строки через пробел)
Результат:
5 2 3 4 1
7 9 8 1 2
3 4 6 5 1
2 3 4 6 5
5 8 7 6 9
Видим, что во всех строках максимальный элемент поменялся местами с элементом главной диагонали.
В задаче не сказано, что строки должны быть одинаковой длины, или что матрица квадратная. Эти случаи также обрабатываются корректно: если строка слишком короткая, то максимальный элемент ни с чем не меняется, а если слишком длинная - то замена проходит штатно. Пример:
3
1 2 3 4 5 6
8 7 3
1 4
Результат:
6 2 3 4 5 1
7 8 3
1 4