WeniVooks

검색

견고한 파이썬

함수의 다른 형태 lambda

1. lambda

lambda 함수는 Python의 강력한 도구 중 하나로, 간결한 함수를 빠르고 익명으로 생성할 수 있게 해줍니다. lambda 함수는 작은 규모의 함수를 정의할 때 사용되며, 코드를 더욱 깔끔하고 효율적으로 만들 수 있습니다.

1.1 Lambda 함수의 정의와 사용

Lambda 함수는 다음과 같은 형식으로 정의됩니다:

lambda parameters: expression
lambda parameters: expression

여기서 arguments는 함수에 전달되는 매개변수를 나타내며, expression은 이 매개변수를 사용하여 계산되는 표현식을 나타냅니다. 이 표현식의 결과값이 함수의 반환값이 됩니다.

  • parameters: 람다 함수의 매개변수입니다. 여러 개의 매개변수를 쉼표(,)로 구분하여 지정할 수 있습니다.
  • expression: 람다 함수에서 실행할 표현식입니다. 이 표현식은 매개변수를 이용하여 값을 계산하고, 계산된 값을 반환합니다.

단일 매개변수를 받아 그 제곱을 반환하는 람다 함수의 예시입니다.

square = lambda x: x*x print(square(5)) # 출력: 25
1.2 람다 함수의 특징

람다함수는 이름을 붙일 수도 있지만 대다수의 경우 아래처럼 다른 함수에 이름 없이 인자로 전달이 가능합니다.

map(lambda x:x**2, [1, 2, 3])

이는 같은 기능을 하는 아래 코드보다 더욱 간결한 코드를 작성할 수 있게 해줍니다.

def square(x): return x**2 map(square, [1, 2, 3])

이 코드는 아래와 같이 표현도 가능합니다.

square = lambda x:x**2 map(square, [1, 2, 3])

다만 람다함수가 장점만 있는 것은 아닙니다. 람다 함수는 복잡한 로직을 구현하기에는 적절하지 않습니다. 만약 복잡한 로직을 구현해야 할 경우에는 함수로 구현하여 가독성을 높이세요.

2. 나아가기

람다 함수는 고차 함수(higher-order function)와 함께 사용하여 코드의 유연성을 높일 수 있습니다. 예를 들어, map, filter와 같은 내장 함수들과 함께 람다 함수를 사용하면 다음과 같이 좀 더 편리하게 코드를 구현할 수 있습니다은 효과를 얻을 수 있습니다:

numbers = [1, 2, 3, 4, 5] print(list(filter(lambda x: x > 3, numbers))) # 출력: [4, 5]
{"packages":["numpy","pandas","matplotlib","lxml"]}
13.6 데코레이터13.8 args, kwargs