Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

. . Ученик (10), на голосовании 3 года назад
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))
Даннный код находит элементы с максимальной и минимальной суммой цифр в массиве. Когда ввожу положительные элементы- все работает, но стоит ввести отрицательный- выдаёт ошибку. Как исправить?
Голосование за лучший ответ
Высший разум (1271064) 3 года назад
1) Считать через остаток от деления на 10
2) Перед переводом в строку сделать abs()
. .Ученик (10) 3 года назад
1) И куда же этот %10 впихнуть? В какую строку?
2) l[i] = abs(str(l[i])) - вот так?
Высший разум (1271064) Python 3.8+ count, numbers = int(input()), list(map(int, input().split())) sums = list(map(lambda x: sum(map(int, str(abs(x)))), numbers)) print(f'Min sum ({(min_sum := min(sums))}):', *(numbers[i] for i in range(len(sums)) if sums[i] == min_sum)) print(f'Max sum ({(max_sum := max(sums))}):', *(numbers[i] for i in range(len(sums)) if sums[i] == max_sum))
Молот Шотландцев Высший разум (302216) 3 года назад
Если это отсюда
https://otvet.mail.ru/question/224265467
то там как раз сделал модуль числа из-за этого invalid literal for int() with base 10
Питон получает вместо числа знак минус и из-за этого функция sum не может работать
. .Ученик (10) 3 года назад
Есть возможность это как-то исправить, чтоб Питон и минус видел тоже и не выдавал ошибки?
Похожие вопросы