ror_coding

[Python] reduce (functools) 본문

Algorithm/Python

[Python] reduce (functools)

ro_rdil_31 2025. 1. 16. 16:33
728x90

from functools import 

  • reduce (누적 함수 적용)
  • partial (함수의 일부 인수 고정해서 새로운 함수 생성)
  • lru_cache (함수의 실행 결과 캐싱하여 동일한 입력에 대해 빠르게 반환)

 

reduce
from functools import reduce
from math import gcd

# 리스트의 모든 값 곱하기
nums = [1, 2, 3, 4]
= reduce(lambda x, y: x * y, nums) # 24
= reduce(gcd, nums) # 모든 원소의 최대공약수 구함.

 

partial
from functools import partial

# 기본 인자를 고정한 함수 생성
def power(base, exp):
    return base ** exp

square = partial(power, exp=2)
cube = partial(power, exp=3)

print(square(4))  # 16
print(cube(2))    # 8

 

lru_cache
from functools import lru_cache

@lru_cache(maxsize=None)  # 캐싱 활성화
def fibonacci(n):
    if n < 2:
        return n
    return fibonacci(n - 1) + fibonacci(n - 2)

print(fibonacci(50))  # 빠르게 결과 출력

 

 

 

 

 

728x90