reduce 함수

정의

  • 반복 가능한 객체의 모든 요소를 특정 함수로 누적 계산해 하나의 값으로 축소하는 함수
  • 반복문을 사용하지 않고 데이터를 하나의 값으로 집계
  • 기본 내장함수는 아니고, functools 모듈에서 제공함

기본 문법

1
2
from functools import reduce
reduce(함수, iterate객체)
  • 작동 방식

(1) 첫 번째와 두 번째 요소를 함수에 적용해 중간 결과를 생성한다.
(2) 그 중간 결과와 다음 요소를 다시 함수에 적용해 2차 중간 결과를 생성한다.
(3) 1-2 과정을 반복해 최종적으로 하나의 값을 변환한다.

활용 예시

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

만약 반복문으로 작성했다면

1
2
3
4
5
6
7
numbers = [1, 2, 3, 4, 5]
sum = 0

for number in numbers:
    sum += number

print(number)

Reference

방송통신대 - 오픈소스기반 데이터분석 (정재화)

Comments