-
1월 11일 TIL - reduce를 이용하여 리스트 원소들의 곱 구하기TIL(Today I Learned) 2024. 1. 11. 21:34
리스트의 모든 원소들의 곱을 구할 땐 기본적으로 for문을 이용해서 하나씩 곱해주는 방식으로 구현할 수 있다.
# 리스트 모든 원소들의 곱을 구하는 법 num_list = [3, 4, 5, 2, 1] # 기본적인 구현 def multiply(num_list): ans = 1 for n in num_list: if n == 0: return 0 ans *= n return ans
이 외에도 reduce를 이용하여 곱을 구할 수 있다. reduce를 알려면 fold라는 개념을 알아야한다.
함수형 프로그래밍(functional programming)에는 fold라는 개념이 있다. fold는 재귀적인 자료구조를 원소들을 반복적으로 처리해 하나의 결과값으로 반환하는 기능이다. 파이썬에서는 이 기능을 functools모듈의 reduce라는 함수로 지원하고 있다.
#사용 예시 reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) #calculates ((((1+2)+3)+4)+5).
람다식에서 함수를 바꿔주면 원하는 값을 도출할 수 있다.
# reduce를 통한 방법 from functools import reduce def reduce_multiply(num_list): return reduce(lambda x, y: x*y, num_list) # ((((1*2)*3)*4)*5)
'TIL(Today I Learned)' 카테고리의 다른 글
1월 31일 TIL - 프로그래머스 대충 만든 자판🔤 (0) 2024.01.31 1월 24일 TIL - 프로그래머스 다트 게임🎯 (1) 2024.01.24 1월 5일 TIL - 프로그래머스 소수 만들기 (0) 2024.01.05 7월 7일 TIL - 캐시 사용하기 (0) 2023.07.07 7월 6일 TIL - REST framework JSONRenderer (0) 2023.07.07