728x90
반응형
from functools import reduce
reduce함수는 functools 의 내장 모듈로 이렇게 호출을 통해서 사용이 가능한데요
이 함수는 여러 데이터에 대한 누적연산을 반환하는 기능을합니다
😮 functools.reduce (함수, sequence) => Value 반환
특히 이 함수에 어떤 값을 넣는지에 따라서 유용한 활용이 가능한데요
몇가지 예시를 통해 이 함수가 어떤 기능을 하는지 살펴보겠습니다
from functools import reduce
def sum(a,b):
return a+b
reduce(sum,[1,2,3,4])
>> 10
이렇게 간단한 sum 함수를 인자로 넣고 뒤의 sequence를 적용하면 ((1+2)+3)+4 = 10이 나오죠
reduce함수는 복잡한 연산이 아니라면 lambda를 이용해서 많이 사용하는 편입니다
Geeksforgeeks의 예시를 통해서 lambda에 조건문을 수행한 형태를 살펴보겠습니다
Lambda 이용 예시)
import functools
lis = [1, 3, 5, 6, 2]
print(functools.reduce(lambda a, b: a if a > b else b, lis))
>> 6
차례대로 연산을 살펴보자면
1 > 3 => True => 1
1 < 5 =>False => 5
5 < 6 => Fasle => 6
6 < 2 => True = > 6
이렇게 순차적인 누적 연산에 따라 결과값이 도출되는 겁니다
Operator 이용 예시)
좀 더 짧게 간단한 연산을 하고 싶다면 파이썬의 operator 을 사용해도 됩니다
lis = [1, 3, 5, 6, 2]
print(functools.reduce(operator.add, lis))
>> 17
**Operator 간단 정리
operator.add(a,b) => a + b
operator.sub(a,b) => a - b
operator.mul(a,b) => a*b
728x90
반응형
'Python' 카테고리의 다른 글
Ordered dict 개념 및 기능 정리 (0) | 2022.10.12 |
---|---|
알파벳 문자열 리스트 쉽게 만드는 법 ‼ (0) | 2022.10.10 |
Python bisect 배열 이진 분할 알고리즘 정리 (1) | 2022.09.30 |
다중 리스트 원소 포함 여부 파악하기 (0) | 2022.09.27 |
파이썬 Map function 다중 변수, 다중 리스트 적용방법 (0) | 2022.09.27 |
댓글