Let’s take a look at the very popular problem of finding the average of a list of numbers. The conventional method for this is to add all the numbers and then divide by the length of the list. For example:

1, 3, 5, 7 1 + 3 + 5 + 7 = 16 16/4 = 4 So the average is 4.

Now let’s say you add another number to the list, 9. What would you do? If you follow the above method, you will re-add all the numbers and divide again. Here that’s not a problem, but imagine you have a huge list with a lot of numbers coming in. Would you still add all the numbers and then divide?

That’s wasteful. We need to find a better algorithm for finding the average. To do that, we will need to use the previous average to calculate the new average. We will name the previous average *prevAvg*, the previous list length *prevLength*, the current list length *currLength* and the new number *x*. We want to find the current average, *currAvg*.

currAvg = (prevAvg*prevLength + x) / currLength

In Python code:

#Initial list, average and length sequence = [1,3,5,7]; avg = 4; length = 4; #Add x to list, length increases by 1 x = 9; avg = (avg*length+x)/(length+1); print(avg);

This can speed up a lot your work, especially when you are dealing with big data and want to calculate, say, the mean.