알고리즘을 풀 때 리스트의 모든 요소를 곱해주는 함수가 있다면 매우 편할 것 같다는 생각을 한적이 있어서 이것 저것 찾아보니 2가지 방법이 있어서 정리를 해보고자 합니다.
from functools import reduce
reduce 함수는 반복 가능한 객체 내 각 요소를 연산한 뒤 이전 연산 결과들과 누적해서 반환해주는 함수다.
구글에 찾아보면 위 정의가 나오는데, 쉽게 설명하자면 리스트 내 요소를 순차적으로 누적계산한 결과를 리턴해준다는 말입니다.

reduce는 첫번째 인자로 계산하는함수를 받고, 두번째인자로 리스트를 넣어주면됩니다.
저렇게하면 1과 2를 곱한 결과물에 3을 곱하고, 그 결과물에 4,5를 곱하는 식으로 진행 됩니다.
눈치채신분들도 있겠지만, 함수를 인자로 넣는 부분에 lambda를 이용하면 간단하게 코드를 짤수 있습니다.

곱하는 연산 말고도, 모든 요소를 누적으로 빼고 싶다던가, 람다를 이용해 숫자 말고도 다른 요소들을 누적으로 처리하고 싶을때 쓰면 유용할 것 같습니다.
from math import prod
reduce를 먼저 소개했지만, 사실 math라이브러리에 있는 prod를 사용하면 매우 쉽게 구할 수 있습니다.

prod 함수안에 리스트를 넣어주기만 하면 누적곱을 리턴해줍니다.
포스팅 내용에 잘못되거나 다른 방법이 있다면 덧글 남겨주세요
오 파이썬의 이점을 제대로 누릴 수 있겠어요. 꿀팁 감사합니다 😋