ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python] functools 모듈의 reduce 함수 사용하기
    언어/파이썬 & 장고 2019. 10. 13. 20:25

    reduce 함수는 아래와 같은 파라미터를 받고 있습니다.

    reduce(function, iterable, initializer=None)

    첫 번째 파라미터는 함수가 들어가게 됩니다. 따라서 람다일 수도 있고 정의해놓은 함수가 될 수도 있습니다. 두 번째 파라미터는 계산을 하고자 하는 리스트가 들어가게 됩니다. 


    아래는 reduce()의 예제입니다.

    from functools import reduce
    
    
    result = reduce(lambda x, y: x+y, [1, 2, 3, 4, 5])
    # ((((1+2)+3)+4)+5)
    print(result)
    
    # 15


    위 예제는 1,2,3,4,5 값을 전부 더한 결과를 반환합니다. 여기서 초기값 100이 존재한다고 하면 아래와 같이 reduce()에 세번째 파라미터를 지정하면 됩니다.

    from functools import reduce
    
    
    result = reduce(lambda x, y: x+y, [1, 2, 3, 4, 5], 100)
    print(result)
    
    # 115


    reduce()는 입력 받은 컨테이너 타입(iterable)을 지정한 함수에 따라 계산한 후, 단일 값으로 결과를 반환합니다.


    reduce()를 사용하여 최댓값을 구할 수 있습니다.

    from functools import reduce
    
    
    func = lambda a, b: a if (a > b) else b
    result = reduce(func, [1, 100, 2, 55])
    
    print(result)
    
    # 100


    댓글