Как изменить максимальный и минимальный элементы в строке матрицы?
Ниже я привел свой код, он работает неправильно, максимальные и минимальные элементы в строках неправильно поменялись местами, программа нестабильна.
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]]