В списке неправильно определяется большее число

Непонятно, почему максимум неправильно определяется.

К пустому списку добавляем числа 3 раза:

1 2 3 4 5

6 7 8 9 10 

11 12 13 14 15

Сам код:

sp = []  # пустой список
sp.append([i for i in input().split()]) # к нему добавляем 3 раза по 5 чисел
sp.append([i for i in input().split()])
sp.append([i for i in input().split()])

curr_max = sp[0][0] # максимальным числом вначале является первый элемент

for i in range(len(sp)):  # тут 3 (0,1,2)
    for j in range(len(sp[i])):  # тут 5 (0,1,2,3,4)
        if sp[i][j] > curr_max:
            curr_max = sp[i][j]

print(curr_max)

И ответ получится 9 а не 15. Почему? Дебагер в Pycharm не помог, просто стоит 9 и все.

ссылка на repl.it, чтобы удобнее смотреть.


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

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

Вы сравниваете строки, а не числа. Строки сравниваются в лексикографическом порядке - т.е. '9' > '100', т.к. сравнивается '9' и '1'.

Попробуйте так:

sp = []
n = 3
for _ in range(n):
    sp.extend(map(int, input().split()))
curr_max = max(sp)
print(curr_max)
→ Ссылка