functools.reduce(function, iterator, initializer = None)
functools 모듈에 속해있는 reduce는 iterator의 요소들을 전달받은 함수에 대입하여 하나의 결과를 출력하는 함수입니다. x와 y를 인자로 받는 함수가 있고, 1차원 리스트 [a1, a2, a3, a4]가 있을 때 reduce 함수는 다음과 같은 과정을 걸쳐 결과를 반환합니다.
아래의 실습을 통해 reduce가 어떠한 입력을 받아 결과를 출력하는지 확인해보곘습니다.
함수 호출
from functools import reduce 함수 및 변수 정의
def foo(x, y):
    return x * y
    
bar = [1, 2, 3, 4, 5]결과 확인
print(reduce(foo, bar)) # 120initializer 인자를 활용하여 초기값을 지정할 수 있습니다.
print(reduce(foo, bar, 100)) # 12000응용
lambda 표현식을 활용하여 코드를 더욱 간결하게 표현할 수 있습니다.
print(reduce(lambda x, y: x + y, bar)) # 15reduce 함수를 응용하여 최대값을 출력하는 코드를 간결하게 짤 수 있습니다.
print(reduce(lambda x, y: x if x > y else y, bar)) # 5