Writing a custom sum function that sums a list of numbers

codio 3.1 list sum
python sum list of strings
python sum(range of numbers)
codio 31 list sum challenge
write a python function to multiply all the numbers in a list.
sum() function python
sum of list using recursion in python
3. 1. list sum

I am new to Python and need some help writing a function that takes a list as an argument.

I want a user to be able to enter a list of numbers (e.g., [1,2,3,4,5]), and then have my program sum the elements of the list. However, I want to sum the elements using a for loop, not just by using the built in sum function.

My problem is that I don't know how to tell the interpreter that the user is entering a list. When I use this code:

  def sum(list):

It doesn't work because the interpreter wants just ONE element that is taken from sum, but I want to enter a list, not just one element. I tried using list.append(..), but couldn't get that to work the way I want.

Thanks in anticipation!

EDIT: I am looking for something like this (thanks, "irrenhaus"):

def listsum(list):
    ret=0
    for i in list:
        ret += i
    return ret

# The test case:
print listsum([2,3,4])  # Should output 9.

I'm not sure how you're building your "user entered list." Are you using a loop? Is it a pure input? Are you reading from JSON or pickle? That's the big unknown.

Let's say you're trying to get them to enter comma-separated values, just for the sake of having an answer.

# ASSUMING PYTHON3

user_input = input("Enter a list of numbers, comma-separated\n>> ")
user_input_as_list = user_input.split(",")
user_input_as_numbers_in_list = map(float, user_input_as_list) # maybe int?
# This will fail if the user entered any input that ISN'T a number

def sum(lst):
    accumulator = 0
    for element in lst:
        accumulator += element
    return accumulator

The top three lines are kind of ugly. You can combine them:

user_input = map(float, input("Enter a list of numbers, comma-separated\n>> ").split(','))

But that's kind of ugly too. How about:

raw_in = input("Enter a list of numbers, comma-separated\n>> ").split(',')
try:
    processed_in = map(float, raw_in)
    # if you specifically need this as a list, you'll have to do `list(map(...))`
    # but map objects are iterable so...
except ValueError:
    # not all values were numbers, so handle it

Python, How do you sum a list of a list in Python? Suppose that you want to calculate the sum of a list of numbers such as: \([1, 3, 5, 7, 9]\). An iterative function that computes the sum is shown in ActiveCode 1. The function uses an accumulator variable (theSum) to compute a running total of all the numbers in the list by starting with \(0\) and adding each number in the list.

The for loop in Python is exceptionally easy to use. For your application, something like this works:

def listsum(list):
    ret=0
    for i in list:
        ret+=i
    return ret

# the test case:
print listsum([2,3,4])
# will then output 9

Edit: Aye, I am slow. The other answer is probably way more helpful. ;)

sum() function in Python, , tuples or dictionaries , but most importantly it should be numbers. Python Exercises, Practice and Solution: Write a Python function to sum all the numbers in a list.

This will work for python 3.x, It is similar to the Adam Smith solution

list_user = str(input("Please add the list you want to sum of format [1,2,3,4,5]:\t"))
total = 0
list_user = list_user.split() #Get each element of the input
for value in list_user:
    try:
        value = int(value) #Check if it is number
    except:
        continue
    total += value

print(total)

Python Exercise: Find the sum of all the numbers in a list, Python Functions: Exercise-2 with Solution. Write a Python function to sum all the numbers in a list. Sample Solution:- Python Code: sum(a) a is the list , it adds up all the numbers in the list a and takes start to be 0, so returning only the sum of the numbers in the list. sum(a, start) this returns the sum of the list + start. Below is the Python implementation of the sum() # Python code to demonstrate the working of.

You can even write a function that can sum elements in nested list within a list. For example it can sum [1, 2, [1, 2, [1, 2]]]

    def my_sum(args):
    sum = 0
    for arg in args:
        if isinstance(arg, (list, tuple)):
            sum += my_sum(arg)
        elif isinstance(arg, int):
            sum += arg
        else:
            raise TypeError("unsupported object of type: {}".format(type(arg)))
    return sum

for my_sum([1, 2, [1, 2, [1, 2]]]) the output will be 9.

If you used standard buildin function sum for this task it would raise an TypeError.

Python program to find sum of elements in list, It contains well written, well thought and well explained computer science and Python provide an inbuilt function sum() which sums up the numbers in the list. Syntax: sum(iterable, start) iterable : iterable can be anything list , tuples or  Writing a custom sum function that sums a list of numbers. I am new to Python and need some help writing a function that takes a list as an argument. I want a user to be able to enter a list of numbers (e.g., [1,2,3,4,5]), and then have my program sum the elements of the list.

This is a somewhat slow version but it works wonders

# option 1
    def sumP(x):
        total = 0
        for i in range(0,len(x)):
            total = total + x[i]
        return(total)    

# option 2
def listsum(numList):
   if len(numList) == 1:
        return numList[0]
   else:
        return numList[0] + listsum(numList[1:])

sumP([2,3,4]),listsum([2,3,4])

5.3. Calculating the Sum of a List of Numbers, Given a list of numbers, write a Python program to find the sum of all the elements print ( "Sum of all elements in given list: " , total) creating sum_list function. You can use a simple formula to sum numbers in a range (a group of cells), but the SUM function is easier to use when you’re working with more than a few numbers. For example =SUM(A2:A6) is less likely to have typing errors than =A2+A3+A4+A5+A6.

Python sum(), The function uses an accumulator variable ( theSum ) to compute a running total of all the numbers in the list by starting with 0 and adding each number in the list. The SUM function returns the sum of values supplied. These values can be numbers, cell references, ranges, arrays, and constants, in any combination. SUM can handle up to 255 individual arguments.

FileMaker Custom Function: SUMLIST ( list ), The sum() function adds the items of an iterable and returns the sum. In this tutorial, we will learn about the sum() function with the help of examples. Sort ArrayList of Custom Objects By Property iterable - iterable (list, tuple, dict, etc). iterable should be numbers. start (optional) - this value is added to the sum of items of  Sum uses the standard Wolfram Language iteration specification. The iteration variable i is treated as local, effectively using Block. If the range of a sum is finite, is typically assigned a sequence of values, with being evaluated for each one. In multiple sums, the range of the outermost variable is given first. »

How do i calculate a sum using a function?, Sample input: SUMLIST ( 2.5¶3 ). Sample output: 5.5. Function definition: (Copy & paste into FileMaker's Edit Custom Function window). // Martin Spanjaard 19-​12-2007 // Sums the numbers in a list // Simplified version of the customfunction 

Comments
  • How do you store the user input? Could you post some code of what you have already tried?
  • I understand you are a beginner which is fine. I'm unclear on what you mean by "the interpreter wants a list". Can you detail what you did? Did you learn yet how to write a loop?
  • possible duplicate of Test if a variable is a list or tuple
  • [float(i) for i in raw_input('lists of numbers').rstrip(']').lstrip('[').split(',')] for a quick and hackery solution.
  • Show us all the code you tried, not just your definition of sum. In particular, show us your input code and surrounding code.
  • Thank you very much but this a bit too much for me. Please look at my edited question to see what I am looking for.
  • @user2938633 the answer you're looking for SPECIFICALLY REQUIRES us to know what your input looks like. You seem to gloss over that requirement in every comment that asks for it, so I'm assuming you already know how to get the user's input. If so, TELL US EXACTLY WHAT THE USER INPUTS. Don't say they input [1,2,3], tell us they input "1, 2, 3" and you split on commas, or they input "[1,2,3]" and you parse out the brackets and the commas, or etc etc.
  • @user2938633, irrenhaus3 don't use list as variable name.
  • Just one question: Do I have to call "print listsum([2,3,4]). Does not it work with listsum([2,3,4]) ???
  • @GrijeshChauhan You're right of course. Should have thought about that myself. Thank you for making it clear.
  • Why did you do isinstance in your first version but type == in this version? I'm confused.
  • @AdamSmith Here in first condition i am checking that every element in list is int and inputted list is instance of list.
  • isinstance is the way to check this
  • @Llopis Can you please explore it more bit. Thnaks