파이썬을 잘 다루시는 분들의 코드를 보면 lambda
가 자주 보인다. 이걸 처음 봤을때 뭔가 복잡해보이고 한 눈에 이해하기가 어려웠서 많이 당황한 기억이 있다. 근데..사실 지금도 그렇다.. 그래서 오늘은 이 람다를 정확히 이해해보고자 한다.
람다(lambda)?
- 람다는 함수를 간단하게 표현해주는 역할을 한다.
- 람다는 이름없는 함수이기에 “익명 함수”라고도 불린다.
- 람다는 식으로 표현되기 때문에 람다 표현식이라고도 부른다.
- 간단히 함수를 표현할 수 있기 때문에 다른 함수의 인수로 넣을때 유용하게 쓰인다.
람다로 함수 만들기
기본적으로 파이썬 함수는 def
를 이용해서 만든다. 간단하게 x
, y
를 더하는 함수를 만들어보겠다.
def plus(x,y):
return x+y
plus(10,20)
# 30
같은 함수를 lambda
로 표현하면 다음과 같다.
람다로 함수를 만들기 위해서는 lambda
뒤에 넣고싶은 인자들을 넣어주고, :
을 붙인 후 식을 적어준다.
lambda x,y:x+y
# <function __main__.<lambda>(x, y)>
람다를 이용하면 기본적으로 다음과 같이 람다 객체가 생성된다. 이 객체를 다시 부르기 위해서는 객체를 변수에 저장해주면 된다. 혹은 괄호를 이용해서 표현식 자체를 곧바로 호출해도 된다.
plus = lambda x,y:x+y
plus(10,20)
# 30
(lambda x,y:x+y)(10,20)
# 30
- 주의 : 람다 안에서는 변수를 만들어 쓸 수 없다. 주어진 인자와 이미 선언된 변수만을 활용해서 반환값을 내야한다.
다음에는 람다를 인수로 하여 map, reduce등에 활용하는 방법에 대해 다뤄보겠다.