PYTHON

python - 기본문법 - lambda

미스털이 사용자 2021. 8. 31. 16:44
반응형

python을 처음 접할 때 가장 이해하기 힘들었던 게 lambda였습니다.

함수인데 굉장히 축약시킨 함수라는 느낌이 듭니다.

여기서는 간단한 예제로 알아보고, 나중에 lambda가 어떻게 활용되는지 알아겠습니다.

 

예) 람다에 관해 알아보기

print('람다');
 
a = (lambda x,y : x + y)(15,22)
print(f'a값은 {a}\n')
 
b = list(map(lambda x : x **2, range(5)))
print('b값은 ',b , '\n')
 
from functools import reduce #reduce함수를 쓰기 위해 import선언
c = reduce(lambda x,y : x + y, [0, 2, 4, 6, 8])
print(f'c값은 {c} \n')
 
d = reduce(lambda x,y : y + x, 'abcdefg')
print(f'c값은 {d}')

(3행) (lambda x, y  : x + y)로 함수를 표현했습니다. 즉 매개변수 2개를 쓸 건데 return값을 더한값으로 하겠다는 뜻이죠.

(6행) map을 이용해 lambda의 return을 여러번 받습니다. range(5)이니 0~4까지 총 다섯개의 인자값을 넣어서 lambda의 리턴값을 취하겠다는 뜻입니다.

(10행) reduce를 이용해서 1개씩 리스트의 개수를 줄여나가겠다는 것이에요. 처음엔 0, 2=>두번째엔 (0,2의 반환값), 4=>세번째엔 (두번째 반환값), 6...

(13행) 역시 reduce를 이용해서 줄여나갑니다. 여기서 눈여겨봐야할 것은 대상이 문자열이라는 것과 y+x로 뒤바뀌어있다는 점이죠.

결과는 다음과 같이 나옵니다.

 

반응형