본문 바로가기

라이브러리

[Python] reduce() 함수 사용법

reduce() 함수는 파이썬 내장 함수 중 하나로, 리스트나 튜플 등의 iterable 객체에 차례로 함수를 적용하여 하나의 결과값을 얻는 함수입니다. reduce() 함수는 functools 모듈에 포함되어 있습니다.

 

1. 사용법


reduce() 함수의 기본 문법은 다음과 같습니다.

 

reduce(function, sequence[, initial])


여기서 function은 iterable 객체에 차례로 적용할 함수이며, sequence는 iterable 객체입니다. initial은 선택적으로 지정할 수 있는 초깃값입니다.

reduce() 함수는 다음과 같은 동작을 수행합니다.

  1. sequence의 첫 번째 원소와 initial 값을 가지고 function 함수를 호출합니다.
  2. function 함수의 반환값과 sequence의 다음 원소를 가지고 다시 function 함수를 호출합니다.
  3. 이 과정을 sequence의 모든 원소에 대해 반복합니다.

이렇게 reduce() 함수는 iterable 객체에 순차적으로 함수를 적용하여 하나의 결과값을 반환합니다. 다음은 reduce() 함수를 사용한 예제 코드입니다.

 

from functools import reduce

# 리스트의 모든 원소를 곱하는 함수
def multiply(a, b):
    return a * b

# reduce() 함수를 사용하여 리스트의 모든 원소를 곱한 결과값을 반환
lst = [1, 2, 3, 4]
result = reduce(multiply, lst)
print(result)  # 출력결과: 24


위 코드에서 reduce() 함수에 multiply 함수와 lst 리스트를 인자로 전달하여 호출합니다. multiply 함수는 두 개의 인자를 받아 곱한 결과를 반환하는 함수이며, reduce() 함수는 lst 리스트의 모든 원소에 대해 multiply 함수를 순차적으로 적용하여 최종 결과값 24를 반환합니다.

reduce() 함수는 iterable 객체에 대해 누적된 값을 계산하는 데 유용합니다. 그러나 파이썬 3부터는 reduce() 함수가 내장 함수에서 제거되었으므로, reduce() 함수를 사용하기 위해서는 functools 모듈을 import해야 합니다.