Here is my code, I need to sum an undefined number of elements in the list. How to do this?
l = raw_input()
l = l.split(\' \')
l.pop(0)
My
You can use sum
to sum the elements of a list, however if your list is coming from raw_input
, you probably want to convert the items to int
or float
first:
l = raw_input().split(' ')
sum(map(int, l))
Python iterable can be summed like so - [sum(range(10)[1:])] . This sums all elements from the list except the first element.
>>> atuple = (1,2,3,4,5)
>>> sum(atuple)
15
>>> alist = [1,2,3,4,5]
>>> sum(alist)
15
def sumoflist(l):
total = 0
for i in l:
total +=i
return total
You can also use reduce method:
>>> myList = [3, 5, 4, 9]
>>> myTotal = reduce(lambda x,y: x+y, myList)
>>> myTotal
21
Furthermore, you can modify the lambda function to do other operations on your list.
You can sum numbers in a list simply with the sum() built-in:
sum(your_list)
It will sum as many number items as you have. Example:
my_list = range(10, 17)
my_list
[10, 11, 12, 13, 14, 15, 16]
sum(my_list)
91
For your specific case:
For your data convert the numbers into int
first and then sum the numbers:
data = ['5', '4', '9']
sum(int(i) for i in data)
18
This will work for undefined number of elements in your list (as long as they are "numbers")
Thanks for @senderle's comment re conversion in case the data is in string format.
>>> 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