# reduce ==> take the numbers for example in the list,
# that combines the first number with the second and
# the result combines it with the third, and so on
# you must imported ==> from functools import reduce
from functools import reduce
# Examples :-
my_list = [1, 2, 8, 50, 90]
# Without Lambda function :-
def sumAll(num1, num2):
return num1 + num2
result = reduce(sumAll, my_list)
print(result)
# my_list = [ 1, 2, 8, 50, 90 ] ==> 1 + 2 = 3 / 3 + 8 = 11 / 11 + 50 = 61 / 61 + 90 = 151
print("-" * 100)
# with Lambda function :-
my_list = [1, 2, 8, 50, 90]
result = reduce(lambda num1, num2: num1 + num2, my_list)
print(result)
from functools import reduce
items = [1,2,3,4,5]
sum_all = reduce(lambda x,y: x + y, items)
print (sum_all) #15
from functools import reduce
# import reduce function
scores = [66, 75, 102, 15, 510]
# have alist of scores we need to do funcion
total = reduce(lambda a, b: a + b, scores)
# we take evry item from list as a,b and sum of them
# plus evry tow items to other items
print(int(f"total is {total}"))
#total is 768
#print total as integer
# python code to demonstrate working of reduce()
# importing functools for reduce()
import functools
# initializing list
lis = [1, 3, 5, 6, 2, ]
# using reduce to compute sum of list
print("The sum of the list elements is : ", end="")
print(functools.reduce(lambda a, b: a+b, lis))
# using reduce to compute maximum element from list
print("The maximum element of the list is : ", end="")
print(functools.reduce(lambda a, b: a if a > b else b, lis))
#The reduce() function accepts a function and a sequence and
#returns a single value calculated as follows:
#1) Initially, the function is called with the first two items from the sequence
#and the result is returned.
#2) The function is then called again with the result obtained in step 1
#and the next value in the sequence. This process keeps repeating
#until there are items in the sequence.
>>>
>>> from functools import reduce
>>>
>>> def do_sum(x1, x2): return x1 + x2
...
>>>
>>> reduce(do_sum, [1, 2, 3, 4])
10
>>>