Summing elements in a list

treng picture treng · Jul 5, 2012 · Viewed 320.1k times · Source

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 input: 3 5 4 9 After input I delete first element via l.pop(0). After .split(' ') my list is ['5', '4', '9'] and I need to sum all elements in this list.

In this case the sum is 18. Please notice that number of elements is not defined.

Answer

Levon picture Levon · Jul 5, 2012

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.