동기들이 lambda 함수를 사용하는 것을 자주 보기도 했고, 한번 써보고 싶은데 어떻게 사용하는지 몰라서
람다(lambda)는 익명함수를 지칭한다. 그렇다면 익명 함수란? 함수지만 기존의 함수 선언 문법과 달리 함수의 이름을 써주지 않고도 정의할 수 있는 함수다.
함수를 쓰려면
def plus(a, b):
return a + b
print(plus(5,2))
이렇게 def를 쓰고 함수 이름을 써줘야하는데, 람다를 사용하면...
lambda a, b : a + b
이름없이 함수를 만들어서 사용할 수 있다.
ex_plus = lambda a, b : a + b
print(ex_plus(4,2))
#혹은
print((lambda n,m:n+m)(3,5))
또한 람다를 변수에 할당하여 재사용이 가능하다.
lambdaAdd = lambda n,m:n+m
print(lambdaAdd(2,3))
#5가 출력됨
파이썬의 람다 함수는 간단한 함수가 필요한 map, reduce, filter 등의 함수에서 주로 쓰여진다.
# 제곱하기
a = [1, 6, 2, 5, 2, 7, 2, 8, 9, 11, 5, 26]
result = list(map(lambda x : x**2, a))
print(result)
# [1, 36, 4, 25, 4, 49, 4, 64, 81, 121, 25, 676] 출력
r = reduce(lambda n,m:n*m, l)
print(r)
# 3628800 출력
a = [8, 4, 2, 5, 2,7, 9, 11, 26, 13]
result = list(filter(lambda x : x > 7 and x < 15, a))
print(result)
# [8, 9, 11, 13] 출력