Coding Test/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