본문 바로가기
프로그래밍/Python

functools reduce 함수 사용법 알아보기

by 부자 꽁냥이 2022. 8. 29.

이번 포스팅에서는 functools 모듈의 reduce 함수 사용법을 알아보려고 한다.


   reduce 함수 사용법

1) 기본 사용법

reduce 함수는 첫 번째 인자로 두 개 인자를 받는 함수를 받는다. 그리고 두 번째 인자는 함수를 적용할 객체를 받는다. 세 번째 인자는 초기값 설정인데 없어도 된다.

 

아래 코드를 통해 reduce 함수의 사용 방법을 익혀보자.

 

from functools import reduce

f = lambda x, y: 3*x+2*y ## x, y 2개 인자를 받는 함수

result = reduce(f, [1,2,3])
print(result)

 

아래 그림은 위 코드에서 reduce 함수 작동 방식을 나타낸 것이다. 먼저 첫 단계에서 리스트의 첫 번째, 두 번째 원소가 x, y에 들어가서 f값을 계산하고 이 f값이 두 번째 단계에서는 x, 그리고 리스트의 나머지 원소 3이 y에 들어가게 되는 것이다.

이번엔 초기값 10을 설정하고 결과를 확인해보자.

 

result = reduce(f, [1,2,3], 10)
print(result)

 

아래 그림은 작동 위 코드의 작동 원리이다.

2) reduce 함수의 응용

reduce를 이용하여 리스트의 최대값을 찾을 수도 있다.

 

def get_larger_value(a, b):
    if a > b:
        return a
    else:
        return b

result = reduce(get_larger_value, [1,6,3,0])
print(result)



댓글


맨 위로