Дана матрица B[N, М]. Найти в каждой строке матрицы максимальный и минимальный элементы

Задание: Дана матрица B[N, М]. Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их с первым и последним элементами строки соответственно.

Я сделал код - в итоге не работает: При вводе двух чисел ошибка сразу, а вот поменять их с первым и последним элементами строки - я не понимаю как сделать. Что не так? Заранее благодарю.

N = int(input())
M = int(input())
B = [[random.randrange(10) for i in range(N)] for j in range(N)]
for i in range(N, M):
    if B[i][j] >= 0:
        print('Максимальный элемент:', B)
    if B[i][j] < 0:
        print('Минимальный элемент:', B)


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

Автор решения: Евгений
import random

N = int(input())
M = int(input())
B = [[random.randrange(10) for i in range(M)] for j in range(N)] # был неверно задан внутренний range
# для подобных случаев (когда нужен и индекс, и элемент) лучше воспользоваться enumerate
for i, row in enumerate(B):
    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(B)
→ Ссылка