reduce 함수는 아래와 같은 파라미터를 받고 있습니다.

reduce(function, iterable, initializer=None)

첫 번째 파라미터는 함수가 들어가게 됩니다. 따라서 람다일 수도 있고 정의해놓은 함수가 될 수도 있습니다. 두 번째 파라미터는 계산을 하고자 하는 리스트가 들어가게 됩니다. 


아래는 reduce()의 예제입니다.

from functools import reduce


result = reduce(lambda x, y: x+y, [1, 2, 3, 4, 5])
# ((((1+2)+3)+4)+5)
print(result)

# 15


위 예제는 1,2,3,4,5 값을 전부 더한 결과를 반환합니다. 여기서 초기값 100이 존재한다고 하면 아래와 같이 reduce()에 세번째 파라미터를 지정하면 됩니다.

from functools import reduce


result = reduce(lambda x, y: x+y, [1, 2, 3, 4, 5], 100)
print(result)

# 115


reduce()는 입력 받은 컨테이너 타입(iterable)을 지정한 함수에 따라 계산한 후, 단일 값으로 결과를 반환합니다.


reduce()를 사용하여 최댓값을 구할 수 있습니다.

from functools import reduce


func = lambda a, b: a if (a > b) else b
result = reduce(func, [1, 100, 2, 55])

print(result)

# 100


+ Random Posts