lambda 함수는 함수의 이름을 정하지 않아도 되는 익명 함수이다.
보통 함수를 정의할 때 이름을 붙이는 이유는, 그 함수를 여러 곳에서 재사용하려고 하는 것이다. 파이썬을 사용하다보면 물론 여러번 사용해야 하는 함수도 필요하겠지만 여러번 사용하지 않고 일회성으로 간단한 작업을 수행해야 하는 함수가 필요할 때도 있다. 이럴 때 일회성으로 간단한 함수를 생성하는 기능이 lambda 함수이다.
temp_func = lambda x : x + 1
print(temp_func(1))
# > 2
num_list = [[0,1], [5,3], [9,2]]
num_list.sort(key=lambda x : x[1])
함수를 선언할 때 필요한 것은 이름, 인자, 실행 코드이다. lambda(익명) 함수는 그 이름에 걸맡게 일회성으로 사용하는 경우가 많아 이름이 필요하지 않으므로 인자와 실행 코드만 적어주면 된다.
lambda 함수를 변수에 할당시켜서 여러번 사용할 수도 있다. lambda(익명) 함수는 함수를 나타내는 이름이 없으므로 일회성으로 사용할 수 밖에 없는데 변수를 이용해 이름을 붙여서 여러번 사용할 수 있게 하는 것이다.
lambda x : x[1]
x는 lambda 함수가 받는 인자, x[1]이 lambda 함수의 return 값이다.
파이썬에서 lambda 함수를 사용할 수 있는 것은 python이 함수를 다른 데이터와 같은 지위로 여기는 first-class 함수 정책을 수용하기 때문이다.
python은 first-class 함수 정책을 수용한 덕분에 함수를 인자로 사용할 수 있고, 변수에 선언할 수도 있다. 만약 python이 first-class 함수 정책을 사용하지 않는다면 lambda 함수를 선언해도 lambda 함수를 함수의 인자로 사용하거나 변수에 할당할 수 없어서 무용지물이 되기 때문에 lambda 함수는 first-class 함수 정책과 연관성이 있다.