이번 포스팅에서는 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)
'프로그래밍 > Python' 카테고리의 다른 글
파이썬 update 함수로 dictionary(딕셔너리) 업데이트 하기 (0) | 2022.09.15 |
---|---|
operator 모듈 알아보기 (2) | 2022.08.30 |
Python map 함수 사용법 알아보기. (0) | 2022.08.29 |
[오류 해결] module 'distutils' has no attribute 'version' (1) | 2022.08.04 |
[Python] Python에서 오류가 발생하는 경우 StackOverflow로 검색하기. (0) | 2022.07.19 |
댓글