[Python] reduce

less than 1 minute read

python-version-3.7.1

reduce

형태: reduce(function, iterable[, initializer]

  • reduce 의 argument 에 해당하는function 은 인수를 2개 받아야한다.

  • initializerIterable Data 의 첫번째 요소보다 먼저 function 에 할당된다. (옵션)

  • from functools import reduce 필요 (내장함수가 아니다.)


Practice

  • reduce 를 이용한 총합구하기
from functools import reduce

data = [i for i in range(1, 10+1)]
data_sum = reduce(lambda x,y : x+y, data)
print(data_sum)

>>> 55


  • reduce 를 이용한 총합구하기 (Initial Value 활용)
from functools import reduce

data = [i for i in range(1, 10+1)]
data_sum = reduce(lambda x,y : x+y, data, 10) # Initial Value 추가
print(data_sum) # 10 + (1+2+...+10)

>>> 65


  • reduce 를 이용한 최댓값 구하기
from functools import reduce

data = [77, 19, 122, 999, 333]
data_max = reduce(lambda x,y : x if x > y else y, data)
print(data_max)

>>> 999


  • reduce 를 이용한 최댓값 구하기 (Initial Value 활용)
from functools import reduce

data = [77, 19, 122, 999, 333]
data_max = reduce(lambda x,y : x if x > y else y, data, 1111) # Initial Value 추가
print(data_max) # 1111 부터 하나씩 큰 값을 비교해나간다.

>>> 1111



Reference

Leave a comment