Суммирование элементов в списке
Вот мой код, мне нужно суммировать количество элементов undefined в списке. Как это сделать?
l = raw_input()
l = l.split(' ')
l.pop(0)
Мой ввод: 3 5 4 9
После ввода я удаляю первый элемент через l.pop(0)
.
После .split(' ')
мой список ['5', '4', '9']
, и мне нужно суммировать все элементы в этом списке.
В этом случае сумма равна 18. Обратите внимание, что количество элементов не определено.
Ответы
Ответ 1
Вы можете суммировать числа в списке просто с sum() встроенным:
sum(your_list)
Он будет суммировать столько элементов, сколько у вас есть. Пример:
my_list = range(10, 17)
my_list
[10, 11, 12, 13, 14, 15, 16]
sum(my_list)
91
Для вашего конкретного случая:
Для ваших данных сначала преобразуйте числа в int
, а затем суммируйте числа:
data = ['5', '4', '9']
sum(int(i) for i in data)
18
Это будет работать для undefined количества элементов в вашем списке (если они являются "цифрами" )
Спасибо за преобразование комментариев @senderle в случае, если данные находятся в строчном формате.
Ответ 2
>>> l = raw_input()
1 2 3 4 5 6 7 8 9 10
>>> l = l.split()
>>> l.pop(0)
'1'
>>> sum(map(int, l)) #or simply sum(int(x) for x in l) , you've to convert the elements to integer first, before applying sum()
54
Ответ 3
Итератор Python можно суммировать так: [sum(range(10)[1:])]
. Это суммирует все элементы из списка, кроме первого элемента.
>>> atuple = (1,2,3,4,5)
>>> sum(atuple)
15
>>> alist = [1,2,3,4,5]
>>> sum(alist)
15
Ответ 4
Вы можете использовать sum
для суммирования элементов списка, однако, если ваш список исходит из raw_input
, вы, вероятно, хотите сначала преобразовать элементы в int
или float
:
l = raw_input().split(' ')
sum(map(int, l))
Ответ 5
Вы можете использовать функцию map
и встроенные функции pythons sum()
. Это упрощает решение. И уменьшает сложность.
a=map(int,raw_input().split())
sum(a)
Готово!