반응형
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로 뒤바뀌어있다는 점이죠.
결과는 다음과 같이 나옵니다.
반응형
'PYTHON' 카테고리의 다른 글
python 클래스 - 메쏘드, 클래스 변수 (0) | 2021.09.03 |
---|---|
python - 클래스(class)에 대해 알아보자(1) - 정의 및 기본 구조 (0) | 2021.09.03 |
파이썬 - 기본 타입 - int, float, str, list, dict (0) | 2021.08.31 |
python - 반복문 멈추게 하기 (break) (0) | 2021.08.31 |
pyhon기본 - 함수(클래스에선 메소드) - def (0) | 2021.08.30 |