A lambda function is a small anonymous function.
A lambda function can take any number of arguments, but can only have one expression.
Python에서의 lambda는 익명 함수로서 함수를 재사용할 필요가 없는 상황이나 복잡한 선언 및 호출을 거치지 않고 간단한 동작을 빠르게 수행하기 위한 용도로 만들어진 기능입니다. lambda 문법은 여러 개의 인자를 가질 수 있지만 하나의 표현식만 사용할 수 있습니다.
def plus(x, y):
return x + y
plus(2, 3)
>>> 5
(lambda x, y : x + y)(2, 3)
>>> 5
파이썬에서는 lambda를 위와 같이 활용할 수 있습니다. 함수명을 부여해 선언하거나 호출을 하지 않는 부분은 직관적으로 와닿지만 위의 예시에서는 굳이 lambda 함수를 사용하는 이유는 잘 모르겠습니다.
Python에서는 map
이라고 하는 함수가 존재합니다. 특히, lambda는 map(함수, iterable), reduce(함수, iterable), filter(함수, iterable)
등과 함께 쓰일때 그 유용성이 들어난다고 생각합니다.
def square(x):
return x * x
arr = [1, 2, 3, 4, 5]
result = []
for element in arr:
result.append(square(element))
result
>>> [1, 4, 9, 16, 25]
result = list(map(lambda x:x*x, arr))
result
>>> [1, 4, 9, 16, 25]
위의 예시처럼 간단한 동작을 iterable한 객체의 모든 요소에 적용할때는 lambda를 사용하여 성능을 향상시킬 수 있습니다.