Как изменить максимальный и минимальный элементы в строке матрицы?

Ниже я привел свой код, он работает неправильно, максимальные и минимальные элементы в строках неправильно поменялись местами, программа нестабильна.

number_of_rows = int(input("Enter the number of rows: ")) #matrix generator
m = [[int(j) for j in input("Enter all the elements of a single row (separated by a space): ").split()] for i in range(number_of_rows)]
print("Your matrix : ", *m, sep = '\n')

for i, row in enumerate(m):
    max = min = 0
    for j, elem in enumerate(row):
        if elem > row[max]:
            max = j
        if elem < row[min]:
            min = j
    row[max], row[0] = row[0], row[max]
    row[min], row[-1] = row[-1], row[min]
print(m)

Ответы (1 шт):

Автор решения: Jack_oS

Если нужно поменять min и max в каждой строке матрицы (в каждом вложенном списке), попробуйте в конце цикла изменить на:

for i, row in enumerate(m):
    max = min = 0
    for j, elem in enumerate(row):
        if elem > row[max]:
            max = j
        if elem < row[min]:
            min = j
    # row[max], row[0] = row[0], row[max]
    row[min], row[max] = row[max], row[min]

print(m)

а то ваш

row[max], row[0] = row[0], row[max]
row[min], row[-1] = row[-1], row[min]

менял max с первым, а потом min с последним... при:

Your matrix : 
[4, 1, 7]
[3, 8, 1]
[13, 42, 77]

выдаст:

[[4, 7, 1], [3, 1, 8], [77, 42, 13]]
→ Ссылка