numbers = [2, 5, 8, 9] def iterative_sum(iterable): total = 0 #iterative approach using state for ele in iterable: total += ele return total def reduced_sum(iterable): return reduce(lambda x,y: x + y, iterable) print iterative_sum(numbers) print reduced_sum(numbers)
24 24
So how does reduce actually work? It starts by taking the first two elements (2 and 5) and apply the passed function or lambda expression on these 2 elements. The result (7) is used with the 3rd element (8) which gives 15. 15 is used again together with 9 adding up to a total of 24. As the iterable is exhausted the reduce function returns the total of 24.
No comments:
Post a Comment