본문 바로가기
Engineering WIKI/Python

[Python] lambda

by wonos 2020. 2. 16.

람다 표현식으로 함수 만들기

람다 표현식을 사용하기 전에 먼저 숫자를 받은 뒤 10을 더해서 반환하는 함수 plus_ten을 만들어보겠습니다.

def plus_ten(x):
	return x + 10

plus_ten(1)
11

return x + 10으로 매개변수 x에 10을 더한 값을 반환하는 간단한 함수입니다.

그럼 이 plus_ten 함수를 람다 표현식으로 작성해보겠습니다. 람다 표현식은 다음과 같이 lambda에 매개변수를 지정하고 :(콜론) 뒤에 반환값으로 사용할 식을 지정합니다.

  • lambda 매개변수들: 식
lambda x: x + 10
<function <lambda> at 0x02C27270>

실행을 해보면 함수 객체가 나오는데, 이 상태로는 함수를 호출할 수 없습니다. 왜냐하면 람다 표현식은 이름이 없는 함수를 만들기 때문입니다. 그래서 람다 표현식을 익명 함수(anonymous function)로 부르기도 합니다.

lambda로 만든 익명 함수를 호출하려면 다음과 같이 람다 표현식을 변수에 할당해주면 됩니다.

 

plus_ten = lambda x: x + 10
plus_ten(1)
11

이제 람다 표현식을 살펴보면 lambda x: x + 10은 매개변수 x 하나를 받고, x에 10을 더해서 반환한다는 뜻입니다. 즉, 매개변수, 연산자, 값 등을 조합한 식으로 반환값을 만드는 방식입니다. 다음그림과 같이 def로 만든 함수와 비교해보면 쉽게 알 수 있습니다.