[파이썬] 람다 함수: 파이썬에서 간결한 함수를 만드는 방법

파이썬에서는 람다(lambda) 함수를 사용하여 간결하게 함수를 생성할 수 있다. 람다 함수는 처음 볼 때는 굉장히 생소한 개념일 수 있다. 나 역시 이걸 왜 쓰지 했는데 막상 배우니 굉장히 간단히 코드를 작성할 수 있는 느낌..?

실제로도 복잡한 기능보다는 간단한 연산, 정렬 등에 주로 활용된다.

이번 포스팅에서는 람다 함수의 개념을 이해하고 몇 가지 예제를 통해 어떻게 사용하는지 알아보겠다.


람다 함수의 개념

람다 함수는 lambda 키워드를 사용하여 정의한다. 일반적인 함수가 def 키워드를 사용하는 것과는 대조적인데 람다 함수의 기본 구조는 다음과 같다.

lambda arguments: expression

람다 함수는 여러 개의 인자를 받을 수 있지만 표현식은 단 하나만 사용할 수 있고 이 표현식의 계산 결과가 바로 함수의 반환 값이 된다!

람다 함수는 이름을 할당하지 않고도 사용할 수 있으며 이러한 특성 때문에 익명 함수라고도 불린다.


람다 함수의 예제

예제 1: 두 수의 합을 구하는 람다 함수

add = lambda x, y: x + y
print(add(5, 3))
# 출력: 8

이 예제에서는 두 개의 인자를 받아 그 합을 반환하는 간단한 람다 함수를 정의하고 있다.

 

예제 2: 리스트 내 각 요소의 제곱 값을 계산하기

numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, numbers))
print(squared)
# 출력: [1, 4, 9, 16, 25]

여기서는 map() 함수와 람다 함수를 함께 사용하여 리스트의 각 요소를 제곱하는 예제를 보여준다. map() 함수는 첫 번째 인자로 함수를 두 번째 인자로 반복 가능한(iterable) 객체를 받아 객체의 각 요소에 함수를 적용한다.

 

예제 3: 리스트 정렬하기

fruits = [('apple', 2), ('banana', 4), ('cherry', 3)]
sorted_fruits = sorted(fruits, key=lambda x: x[1])
print(sorted_fruits)
# 출력: [('apple', 2), ('cherry', 3), ('banana', 4)]

이 예제에서는 sorted() 함수의 key 매개변수에 람다 함수를 사용하여 튜플의 두 번째 요소(수량)를 기준으로 리스트를 정렬하고 있다.


결론

람다 함수는 파이썬에서 간단한 함수를 빠르게 정의할 수 있는 유용한 방법이다. 특히, map(), filter(), sorted() 등의 함수와 함께 사용될 때 그 진가를 발휘한다.

하지만 람다 함수는 코드의 가독성을 저하시킬 수 있으므로 복잡한 로직은 일반 함수를 사용하여 정의하는 것이 좋다.

과유불급!