항상 람다함수는 어렵다는 편견이 있었고 써본적이 많이 없어서 쓰기를 꺼려해왔지만
한번 부딪쳐보자 라는 생각으로 공부해보겠습니다!
람다함수란?
먼저 람다 표현식은 식 형태로 되어 있다고 해서 람다 표현식(lambda expression)이라고 부릅니다!
람다 표현식은 함수를 간편하게 작성할 수 있어서 다른 함수의 인수로 넣을 때 주로 사용합니다.
람다 표현식으로 10씩 더해주는 일반 함수를 만들어 보겠습니다.
def plus_ten(x):
return x + 10
plus_ten(1)
#결과 = 11
이렇게 구성된 함수를 다음과 같은 공식을 이용하여 람다 표현식으로 만들어보겠습니다.
- lambda 매개변수들 : 식
lambda x : x+10
하지만
print(lambda x:x+10)
이렇게 출력을 했을 때

객체가 반환되는 것을 알 수 있습니다.
이유 찾아봐야함
이유는 람다 표현식은 이름이 없는 함수를 만들기 때문입니다.
lambda로 만든 익명 함수를 호출하려면 다음과 같이 람다 표현식을 변수에 할당해주면 됩니다.
plus_ten = lambda x : x+10
plus_ten(1)
#결과 = 11
매개변수, 연산자, 값 등을 조합한 식으로 반환값을 만드는 방식입니다.

다음과 같이 매개 변수는 : 앞에 배치, return값은 : 뒤에 배치합니다.
앞의 코드에선 람다 표현식을 변수에 할당했습니다.
하지만 이번엔 변수를 사용하지 않고 더욱 간편하게 람다 표현식 자체를 바로 호출할 수 있습니다.
(lambda x : x + 10)(1)
대신, 람다식 안에서는 변수를 만들 수 없습니다.
- 반환값 부분은 변수 없이 한 줄로 표현할 수 있어야 합니다.
- 변수가 필요한 코드일 경우에는 def로 함수를 작성하는 것이 좋습니다.


다음과 같이 변수 y를 만드려고 했더니 SyntaxError가 나는 것을 볼 수 있습니다.
람다 표현식 바깥에 있는 변수는 사용할 수 있습니다.
y = 10
(lambda x: x+y)(1)
다음은 매개변수 x와 람다 표현식 바깥에 있는 변수 y를 더해서 반환합니다.
람다함수를 쓰는 이유
함수의 인수 부분에서 간단하게 함수를 만들기 위해 사용
map
람다 표현식을 사용하기 전에 먼저 def로 함수를 만들어서 map을 사용해 보겠습니다.
def plus_ten(x)
return x+10
list(map(plus_ten, [1,2,3]))
# 결과 = [11,12,13]
위와 같이 함수를 직접 만들어서 넣어도 됩니다.
이제 람다 표현식으로 함수를 만들어서 map에 넣어보겠습니다.
list(map(lambda x : x+10, [1,2,3]))
# 결과 = [11,12,13]
다음과 같이 같은 결과를 반환하지만 람다를 사용하면 확실히 더 짧은 코드로 구현할 수 있습니다.
느낀점
항상 써본적이 많이 없다는 이유로 간편한 기능을 쓰는것에 대해서 두려워했습니다.
하지만 한두시간만 공들이면 이후가 엄청나게 편해진다는 마음가짐으로
써본적 없는것에 대한 두려움을 가지지 않도록 노력해야겠다고 생각했습니다 :)
'🧮Programming > Python' 카테고리의 다른 글
| [Python] 딕셔너리(Dictionary) 정리 및 사용법 (0) | 2024.02.14 |
|---|---|
| [Python] 입력 값 다중 리스트로 만드는 법 (0) | 2024.02.13 |
| [Python] 정렬 함수 (0) | 2024.02.11 |
| [Python] map함수 (1) | 2024.02.09 |
| [Python] join함수 (0) | 2024.02.08 |