Ошибка TypeError: '<' not supported between instances of 'int' and 'list'
Задание: Написать программу, которая сформирует новый список, в котором изменены местами две строки: строка, содержащая максимальный элемент, и строка, содержащая минимальный элемент.
from random import randint
x = int(7)
y = int(11)
matrix = [[randint(0, 20) for a in range(y)] for b in range(x)]
print("first matrix: ")
for i in range(x):
print(matrix[i])
newmatrix = []
mini = int(matrix[0][0])
maxi = int(matrix[0][0])
a = 0
b = 0
for i in range(x):
for j in range(y):
if matrix[i][j] > maxi:
maxi = matrix[i]
a = i
if matrix[i][j] < mini:
mini = matrix[i]
b = i
for i in range(len(matrix)):
newmatrix[i] = matrix[a][i]
for i in range(len(matrix)):
matrix[a][i] = matrix[b][i]
for i in range(len(matrix)):
matrix[b][i] = newmatrix[i]
print("second matrix: ")
for i in range(len(matrix)):
print(matrix[i])
Ошибка:
line 19, in <module>
if matrix[i][j] < mini:
TypeError: '<' not supported between instances of 'int' and 'list'
Пожалуйста объясните в чём ошибка и как её исправить)
Ответы (1 шт):
Автор решения: Сергей
→ Ссылка
Вы же сами mini = matrix[i] сделали, превратив mini в список. Как его далее сравнивать с элементом списка типа int?
Предлагаемая коррекция ниже:
if matrix[i][j] > maxi:
maxi = matrix[i][j]
a = i
if matrix[i][j] < mini:
mini = matrix[i][j]
b = i
Следующую ошибку рекомендую исправить самому с помощью отладчика. Я сам использую PyCharm. Вот здесь очень простая и короткая рекомендация по отладке в моём ответе на другой вопрос: Ошибка в коде генерации пароля. Просьба помочь найти причину, дать пояснение