Ro Mc Ro Mc - 1 year ago 165
Python Question

Python sum() function with list parameter

I am required to use the sum() function in order to sum the values in a list. Please note that this is DISTINCT from using a 'for' loop to add the numbers manually. I thought it would be something simple like the following, but I receive 'TypeError: 'int' object is not callable'.

numbers = [1, 2, 3]
numsum = (sum(numbers))

I looked at a few other solutions that involved setting the start parameter, defining a map, or including 'for' syntax within sum(), but I haven't had any luck with these variations, and can't figure out what's going on. Could someone provide me with the simplest possible example of sum() that will sum a list, and provide an explanation for why it is done the way it is?

Answer Source

Have you used the variable sum anywhere else? That would explain it.

>>> sum = 1
>>> numbers = [1, 2, 3]
>>> numsum = (sum(numbers))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable

The name sum doesn't point to the function anymore now, it points to an integer.

Solution: Don't call your variable sum, call it total or something similar.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download