람다는 <인자>를 전달하여 <인자 활용 수행 코드>를 수행한 후 바로 결과를 반환한다.
<인자>는 콤마(,)로 구분해 여러개로 사용이 가능
labmda <인자> : <인자 활용 수행 코드>
람다를 사용할 때 람다 전체를 소괄호로 감싸고 그 다음에 별도의 소괄호에 인자를 사용한다.
(labmda <인자> : <인자 활용 수행 코드>) (<인자>)
위와 같이 사용하는 것이 기본적인 방법이다.
보통은 편리성을 위해 아래와 같이 람다 함수를 다른 변수에 할당하고
이 변수를 함수명처럼 이용해 람다 함수를 호출한다.
람다 함수를 변수에 할당할 때는 소괄호로 감싸지 않아도 된다.
lambda_function = lambda <인자> : <인자 활용 수행 코드>
labmda_function(<인자>)
(lambda x : x**2) (3)
#print((lambda x : x**2) (3))
출력 : 9
test = lambda x : x**2
test(2)
#print(test(2))
#다른 인자의 제곱 값을 얻고 싶다면 인자만 바꿔서 호출해주면 된다.
# ex) test(5)
# 출력 : 25
출력 : 4
test2 = lambda x,y,z : 2*x + 3*y + z
test2(1,2,3)
출력 : 11
map(함수, 리스트)
list(map(lambda x: x ** 2, range(5))) # x를 2 거듭제곱한다. 0~4까지
출력 : [0, 1, 4, 9, 16]
reduce(함수, 시퀀스)
reduce = 시퀀스(문자열, 리스트, 튜플)을 누적집계
from functools import reduce
reduce(lambda x,y : x+y,[0,1,2,3,4])
출력 : 10
풀이
0+1=1
1+2 =3
3+3 =6
6+4 = 10
from functools import reduce
reduce(lambda x,y : y-x,[0,1,2,3,4])
출력 : 2
filter(함수, 리스트)
list(filter(lambda x: x < 5, range(10)))
# 0~9중에서 x가 5 미만인 것들
출력 : [0, 1, 2, 3, 4]
filter를 사용하여 홀수와 짝수를 출력 해보자
#홀수
list(filter(lambda x: x % 2, range(10)))
# x를 2로 나누었을때 0이면 False이므로 버리고
# 1이면 True이므로 list에 담는다.
#또 다른 방식의 홀수
# list(filter(lambda x: x %2!=0, range(10)))
#짝수
list(filter(lambda x: x %2==0,range(10)))
출력 :
#홀수
[1, 3, 5, 7, 9]
#짝수
[0, 2, 4, 6, 8]