데이터 꿈나무
[Python] 람다(lambda)함수 이해하기 본문
안녕하세요~ 람다 함수에 대해 포스팅을 해보려고 해요~!
저도 람다 함수 필요할 때만 검색해서 사용해보고 정확한 사용법은 잘 모르는 상태라 포스팅을 통해 공부하면서 여러분들께도 알려드리려고 해요ㅎㅎ 같이 공부해봐요:)
람다 표현식은 식 형태로 되어 있다고 해서 람다 표현식이라고 부릅니다. 특히 람다 표현식을 함수를 간편하게 작성할 수 있어서 다른 함수의 인수로 넣을 때 주로 사용합니다.
📌 람다 표현식으로 함수 만들기
먼저 정수 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 함수를 사용하면 더 효율적인 코드를 작성하실 수 있을거예요~
모두 파이팅입니다!!

참고자료 : 코딩도장
'Language > Python' 카테고리의 다른 글
| [Python] 문자열(str)에서 특정 문자열 포함 유무 확인하기 (0) | 2023.02.07 |
|---|---|
| [Python] 같은 문자가 연속으로 몇 번 반복하는지 계산하는 프로그램 (0) | 2023.01.31 |
| [Python] 원하는 숫자를 입력 받아 1부터 그 수까지를 리스트로 만들고, 원소들의 합을 구하는 프로그램 (0) | 2023.01.30 |
| [Python] 층수에 따라 음식값 받는 프로그램 (0) | 2023.01.29 |
| [Python] 컴퓨터와 주사위 놀이하기 (2) | 2023.01.26 |