Странная работа sum()
Вот мой код:
spilled, sheets = map(int, input().split())
list_of_spilled = map(int, input().split())
print(sum(list_of_spilled))
a = sum(list_of_spilled)
print(a)
Пример на котором я проверяю работу:
2 10
3 2
И почему-то в первом случае:
print(sum(list_of_spilled))
код выводит 5, как и положено
А во втором:
a = sum(list_of_spilled) print(a)
код выводит 0.
Пожалуйста, объясните, что я делаю не так.
Ответы (1 шт):
В вашем коде вы используете функцию map() для создания итерируемого объекта list_of_spilled. Когда вы вызываете sum(list_of_spilled) в первый раз, он успешно вычисляет сумму (3 + 2 = 5), но после этого list_of_spilled становится пустым.
Когда вы снова пытаетесь использовать sum(list_of_spilled) для присвоения значения переменной a, список уже пуст, и поэтому сумма равна 0.
Чтобы избежать этой проблемы, вы можете преобразовать результат map() в список, чтобы он оставался неизменным после первого использования:
spilled, sheets = map(int, input().split())
list_of_spilled = list(map(int, input().split()))
print(sum(list_of_spilled))
a = sum(list_of_spilled)
print(a)