[Python] lambda 함수

 

lambda 함수

  • lambda 함수란 파이썬에서 이름 없이 정의할 수 있는 익명 함수(anonymous function)이다.
  • 기본 형식은 lambda 매개변수: 표현식 으로 정의하여 사용한다.
def add(x, y):
    return x + y
  • 위 코드는 def로 정의된 일반 함수이며, 이를 lambda를 사용하면 같은 기능을 더 간결하게 표현할 수 있습니다.
f = (lambda x,y: x+y)
f(x, y)
  • 위와 같이 lambda 식을 변수에 대입해 사용할 수 있다.
  • 만약, 일회용으로 한 번만 사용하고 싶다면 다음과 같이 바로 호출할 수도 있다.
(lambda x, y: x + y)(x, y)
  • 이런 lambda함수는 주로 map, filter 등과 같이 사용되어 활용된다.
ls = [1, 2, 3, 4, 5]
square_ls = list(map(lambda x: x**2, ls))
print(square_ls) # [1, 4, 9, 16, 25]
  • map(func, iterable)은 반복 가능한 객체의 각 요소에 함수를 적용한다.
  • map()이터레이터(iterator) 를 반환하므로, 리스트로 변환해야 결과를 볼 수 있다.
ls = [1, 2, 3, 4, 5]
bigger_than_3 = list(filter(lambda x: x >= 3, ls))
print(bigger_than_3) # [3, 4, 5]
  • filter(func, iterable)은 함수 결과가 True인 요소만 걸러낸다.
  • filter()filter 객체(iterator)를 반환하므로, 결과를 확인하려면 리스트로 변환해야 한다.