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

람다 표현식으로 익명 함수를 만드는 방법을 알아보자. 람다표현식은 함수를 간편하게 작성할 수 있어서 다른 함수의 인수로 넣을 때 주로 사용한다.

다음 함수는 매개변수 x에 10을 더해 반환하는 아주 간단한 함수다.

def plus_ten(x):
    return x+10

이 함수를 람다 표현식으로 바꿔보자. 람다표현식은 lambda 매개변수들 : 식 과 같은 형태로 만든다.

>>> lambda x: x + 10
<function <lambda> at 0x036B8148>

실행을 해보면 함수 객체가 나온다. 람다 표현식은 이름이 없는 함수이므로 다음과 같이 변수에 할당해주어야 한다.

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

람다 표현식 자체를 호출하기

변수에 할당하지 않고 다음과 같이 람다 표현식 자체를 바로 호출할 수 있다.

>>> (lambda x: x + 10)(10)
20

람다 표현식 안에서는 변수를 만들 수 없다.

람다 표현식에서 주의할 점은 람다 표현식 안에서는 새 변수를 만들 수 없다는 점이다. 람다 표현식 밖에 있는 변수는 사용할 수 있다.

y = 5
plus_y = lambda x: x+y
print(plus_y(10))
15

람다 표현식을 인수로 사용하기

map등의 함수에서 람다표현식을 유용하게 사용할 수 있다.

a = list(map(lambda x: x+3, range(10)))
print(a)
[3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

람다 표현식과 map, filter, reduce 함수 활용하기