Top.Mail.Ru
Ответы

Invalid literal for int() with base 10: '-' . Python. Как быть? Что не так с кодом?

N = int(input())
l = list(map(int, input().split()))
n = []
for i in range(len(l)):
l[i] = str(l[i])
s = sum(list(map(int,l[i])))
n.append(s)
N=[]
for k in l:
if sum(list(map(int,k))) == max(n):
N.append(int(k))
print(l[n.index(min(n))])
print(max(N))
Даннный код находит элементы с максимальной и минимальной суммой цифр в массиве. Когда ввожу положительные элементы- все работает, но стоит ввести отрицательный- выдаёт ошибку. Как исправить?

По дате
По рейтингу
Аватар пользователя
Просветленный
5лет

1) Считать через остаток от деления на 10
2) Перед переводом в строку сделать abs()

Аватар пользователя
Ученик
5лет

1) И куда же этот %10 впихнуть? В какую строку?
2) l[i] = abs(str(l[i])) - вот так?



Видео по теме