lambda( )는 익명함수라고 하며, 이름이 없는 함수입니다. 간단한 예제로 설명드려 볼게요.
print()
는 이름이 있는 함수입니다.
hojun = print
hojun('hello world')
#출력값
#hello world
print
를 hojun
으로 받고 print함수를 호출할 수 있습니다. 즉, 이름이 있다는 뜻은 함수를 가르키고 있는 '변수명' 이라고 생각하면 돼요.
한가지 예제를 더 살펴보도록 할게요.
입력
def add(x, y):
return x + y
def sub():
pass
def div():
pass
def mul():
pass
caculator = [add, sub, div, mul]
print(caculator[0](10, 20))#0번째 값은 add 입니다.
출력
30
우선 add, sub, div, mul이라는 사칙연산을 수행하는 함수를 선언해주었습니다. 그 다음 각 함수들의 이름을 calculator라는 배열에 넣어주었고, print로 0번째 배열을 호출하였더니 함수 add의 결과값인 30이 나오게 되었습니다.
우리가 일반적으로 사용할 수 있는 변수의 위치에 ( )(괄호)만 사용하지 않는다면 변수처럼 사용할 수 있으며, 호출할 때는 '( )'(괄호)를 사용해줍니다.
그럼 lambda함수는 왜 익명함수 일까요? 이름이 있는 함수들과는 다르게 매우 간결하게 작성할 수 있기 때문입니다.
lambda 매개변수 : 결과
이렇게 단 한줄로 함수의 기능을 구현할 수 있어요! 또한 lambda함수는 return이라는 키워드를 입력하지 않아도 결과 부분을 통해 자동으로 return해줍니다.
예제를 볼게요.