일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 프로그래머스
- 연습문제
- mysql
- 코테
- lambda
- import re
- join
- BFS
- counter
- itertools
- level4
- programmers
- Level2
- 완전탐색
- time complexity
- 데이터분석
- CodingTest
- collections
- 코딩테스트
- 시간복잡도
- Stack
- python
- 코딩
- sql
- coding test
- lv4
- coding
- 조합
- 파이썬
- Queue
- Today
- Total
ror_coding
[Python] reduce (functools) 본문
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
'Algorithm > Python' 카테고리의 다른 글
[Programmers] [카카오 인턴] 수식 최대화 - 67257 (0) | 2025.01.19 |
---|---|
[Programmers] 괄호 변환 - 60058 (0) | 2024.12.31 |
[Programmers] 줄 서는 방법 - 12936 (0) | 2024.12.31 |
[Programmers] 무인도 여행 - 154540 (0) | 2024.12.30 |
[Programmers] [3차] 방금그곡 - 17683 (1) | 2024.12.30 |