내용 목차
함수를 간략하게 만드는 람다표현식에 대해 알아보죠. 특히 람다표현식은 함수를 간편하게 작성할 수 있어서 다른 함수의 인수로 넣을때 자주 사용됩니다.
람다 표현식 만들기
def plus_ten(x): return x + 10 plus_ten(1)
위와 같은 함수를 람다표현식으로 바꾸어보겠습니다.
lambda 기본형태
저장될 변수 = lambda 매개변수: 식(return 코드)
plus_ten = lambda x: x+10 #사용예 plus_ten(1) # 11
매개변수 x 하나를 받고, x에 더하기 10을 해서 반환한다는 의미
람다 표현식 자체 호출(실행)하기
(lambda x: x+10)(1) #11
자바스크립트의 자체 실행함수와 형태가 같습니다. ()로 묶어서 마지막에 (1)처럼 매개변수를 전달하고 바로 실행하는 코드입니다.
람다 표현식 안에서는 새로운 변수를 만들 수 없습니다.
(lambda x: y=10; x + y)(1) # SyntaxError : invalid syntax
위와같이 lambda 안에서 y=10을 정의하면 syntax 에러가 납니다.
y=10 (lambda x: x + y)(1) # 11
단, 람다표현식 바깥에 있는 변수는 사용할 수 있습니다.
람다 표현식 함수의 인수로 사용하기
람다표현식을 가장 많이 사용하는 경우가 함수의 인수로 사용하는 경우입니다. 아래는 람다표현식을 사용하지 않는 경우입니다.
def plus_ten(x): return x + 10 list(map(plus_ten, [1,2,3])) #[11,12,13]
이것을 람다 표현식으로 만들면 아래와 같습니다.
list(map(lambda x: x+10, [1,2,3])) #[11,12,13]
한줄로 줄었습니다. 괜찮군요.
오늘은 람다표현식 lambda 에 대해서 한번 간단하게 알아봤습니다. 나중에 여유가 된다면 filter, reduce 메서드와 같이 사용하는 방법도 알아 보겠습니다.