reduce 함수

참고 자료

Engineering님의 블로그

reduce(함수, 데이터, 초기값)

  • 누적 집계를 위해서 사용한다.
  • 함수에는 2가지 인자가 존재한다. (첫번째 인자는 누적자, 두번째 인자는 현재값)

reduce 코드

def reduce(function, iterable, initializer=None):
    it = iter(iterable)
    if initializer is None:
        value = next(it)
    else:
        value = initializer
    for element in it:
        value = function(value, element)
    return value

활용

from functools import reduce
from fractions import gcd

def solution(arr):
    return reduce(lambda a, b : a * b // gcd(a, b), arr)

arr = [2,6,8,14]
print(solution(arr))

결과

168

a가 누적자이고, b가 현재값이다.
reduce 코드를 보면 처음에 초기값이 주어지지 않으면 arr의 첫번째 값으로 초기화 시킨다.(a = arr[0]인 상태)
b = arr[1]부터 시작해서 순환한다.
함수가 실행되고 다시 a에는 함수의 결과값이 저장된다.
이 과정이 arr 순환이 끝날 때까지 게속 된다.