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