[파이썬] 람다 표현식(Lambda Expression)

I. 람다 함수 (Lambda Function)

  • 일반적인 함수는 함수를 정의 후 실행 연산자로 호출하여 사용하지만 람다 함수는 별도의 함수 정의 없이 함수를 작성하는 즉시 실행
  • 예약어 lambda를 먼저 쓰고 다음에 매개변수, 콜론, 표현식 순으로 작성
  • 이름을 별도로 지정이 불가하고 표현식 평가 후 결과를 그대로 반환
  • [예제] 람다 함수 정의 및 실행
(lambda x, y : print(x + y)) (1, 3)     # lambda [매개 변수] : [표현식]

[결과]
4
  • 표현식에 다른 함수를 호출 할 수 있지만 표현식에 pass문은 문장이므로 사용 불가

 

II. 람다 함수를 이용한 합성 함수 처리

  • 람다 함수도 일반 함수 처럼 람다 함수의 인자로 사용하여 합성 함수 처리 가능
  • [예제] 람다 함수에 람다 함수를 사용하여 합성 함수 처리
list1 = [1,2,3]

lambdaSquare = lambda x : x * x     # 람다 함수 재사용을 위해 변수에 할당

# 람다 함수에 리스트 컴프리헨션을 작성하고, 내부에 미리 정의한 람다 함수 실행
print((lambda lambdaSquare, obj1 : [lambdaSquare(x) for x in obj1]) (lambdaSquare, list1))

[결과]
[1, 4, 9]
  • [예제] 함수의 인자를 분리하여 부분 함수 처리
lambdaAdd = lambda x : lambda y : x + y # 외부 람다 함수와 내부 람다 함수에 인자를 분리

lambdaAdd = lambdaAdd(30)               # 내부 람다 함수에서 함수 처리

print(lambdaAdd(50))

[결과]
80

 
[참고]

  • 잇플, “한 권으로 개발자가 원하던 파이썬 심화 A to Z”, 2019.11

콘텐츠 사용 시 출처 표기 부탁 드리고, 궁금한 점이나 의견은 댓글 남겨주세요^^