본문 바로가기
Python

파이썬 reduce 함수 정리

by Queen2 2022. 10. 1.
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
반응형

댓글