HomeSearch

Python Sum Example

This Python example page uses the sum method on a list of integers. It shows a sum TypeError.
Sum. A list contains the numbers 10, 20 and 5. Its sum is 35. We can a for-loop to iterate and add up the element values. Or we can use a simpler built-in method.
Two arguments. The sum() built-in receives two arguments. The first is an iterable collection like list—these elements are summed. The second argument is added to the sum.
Let us start summing. Here we introduce a list with three integers in it. We sum those integers. And then we use sum with two arguments.

Argument 1: An iterable like a list we want to sum. The list must have summable elements like integers, not sub lists.

Argument 2: A value that is added to the sum of the iterable's elements. We can use this argument to sum previous sums.

Python program that uses sum, two arguments values = [10, 20, 5] # The sum of the 3 values is this number. result = sum(values) print(result) # Use sum with two arguments. # ... The second argument is added to the element sum. result = sum(values, 1000) print(result) Output 35 1035
Error in summing. We cannot sum nested iterables. Instead sum() only counts up top-level elements in our list. A nested list leads to a TypeError.Nested list
Python program that uses sum, nested list error # This list has a nested list element. # ... It cannot be summed with sum. values = [10, [20, 30]] # This will cause a TypeError. result = sum(values) print(result) Output Traceback (most recent call last): File "C:\programs\file.py", line 9, in <module> result = sum(values) TypeError: unsupported operand type(s) for +: 'int' and 'list'
Fsum example. The sum() built-in will work with float numbers like 1.5. But it may return a less-accurate result than the math.fsum specialty method.Math: fsum
A review. Why use sum? Why not just loop over elements and add them up? In some programs, sum() leads to simpler, more maintainable code—but not always.
© 2007-2019 Sam Allen. Every person is special and unique. Send bug reports to info@dotnetperls.com.
Home
Dot Net Perls