데이터 꿈나무

[Python] 람다(lambda)함수 이해하기 본문

Language/Python

[Python] 람다(lambda)함수 이해하기

ye_ju 2023. 1. 30. 14:55

안녕하세요~ 람다 함수에 대해 포스팅을 해보려고 해요~!

저도 람다 함수 필요할 때만 검색해서 사용해보고 정확한 사용법은 잘 모르는 상태라 포스팅을 통해 공부하면서 여러분들께도 알려드리려고 해요ㅎㅎ 같이 공부해봐요:)

 

람다 표현식은 식 형태로 되어 있다고 해서 람다 표현식이라고 부릅니다. 특히 람다 표현식을 함수를 간편하게 작성할 수 있어서 다른 함수의 인수로 넣을 때 주로 사용합니다.

 

 


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

먼저 정수 num1과 num2가 주어질 때, num1에서 num2를 뺀 값을 return하도록 solution 함수를 작성해보도록 할게요.

def solution(num1, num2):
	answer = 0
    answer = num1-num2
    return answer

실행 결과

num1에서 num2를 뺀 값을 반환하는 간단한 함수입니다.

그럼 이제 이 solution 함수를 람다 표현식으로 작성해보겠습니다.

 

람다 표현식은 lambda에 매개변수를 지정하고 :(콜론) 뒤에 반환값으로 사용할 식을 지정합니다.

lambda num1, num2 : num1 - num2

실행을 해보면 함수 객체가 나오는데, 이 상태로는 함수를 호출할 수 없습니다.

왜냐하면 람다 표현식은 이름이 없는 함수를 만들기 때문입니다. 그래서 람다 표현식을 익명함수로 부르기도 합니다.

 

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

solution = lambda num1, num2 : num1 - num2

실행 결과

 

 

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

람다 표현식은 변수에 할당하지 않고 람다 표현식 자체를 바로 호출할 수 있습니다.

다음과 같이 람다 표현식을 ()(괄호)로 묶은 뒤에 다시 ()를 붙이고 인수를 넣어서 호출하면 됩니다.

(lambda num1, num2 : num1 - num2)(5, 3)

실행 결과

 

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

람다 표현식에서 주의할 점은 람다 표현식 안에서는 새 변수를 만들 수 없다는 점입니다.

따라서 반환값 부분은 변수 없이 식 한 줄로 표현할 수 있어야 합니다. 변수가 필요한 코드일 경우에는 def로 함수를 작성하는 것이 좋습니다.

(lambda num1, num2 = 3; num1 - num2)(5)
SyntaxError: invalid syntax

 

단, 람다 표현식 바깥에 있는 변수는 사용할 수 있습니다. 다음은 매개변수 x와 람다 표현식 바깥에 있는 변수 y를 더해서 반환합니다.

num2 = 3
(lambda num1: num1 - num2)(5)

 

 


지금까지 람다 표현식에 대해서 공부해봤는데요, 어떠셨나요~? 코드가 훨씬 더 간단해졌죠?

필요에 따라서 def함수를 만들어서 사용하거나, lambda 함수를 사용하면 더 효율적인 코드를 작성하실 수 있을거예요~

모두 파이팅입니다!!

 

 

참고자료 : 코딩도장

Comments