파이썬 익명 함수란?
파이썬에서 익명 함수(anonymous function)는 이름 없이 정의되는 함수를 의미합니다. 일반적인 함수는 def 키워드를 사용해 이름을 붙여 정의하지만, 익명 함수는 lambda 키워드를 사용해 정의합니다. 이러한 이유로 익명 함수는 람다 함수(lambda function)라고도 불립니다.
람다 함수는 한 줄로 간단한 연산을 수행할 때 특히 유용하며, 함수를 잠깐 사용하고 버리는 일회성 상황에서 코드를 깔끔하게 유지할 수 있도록 도와줍니다.
람다 함수의 기본 문법
lambda 인수: 표현식예를 들어 두 수를 더하는 함수를 일반 함수와 람다 함수로 각각 작성하면 다음과 같습니다.
# 일반 함수
def add(x, y):
return x + y
# 람다 함수
add_lambda = lambda x, y: x + y
print(add(3, 5)) # 출력: 8
print(add_lambda(3, 5)) # 출력: 8람다 함수의 대표적인 활용 예시
람다 함수는 sorted(), sort(), map(), filter() 등 다른 함수의 인수로 전달될 때 가장 빛을 발합니다. 아래 예제는 튜플 리스트를 각 튜플의 두 번째 요소를 기준으로 오름차순 정렬하는 코드입니다.
pairs = [(1, 2), (4, 1), (9, 10), (13, -3)]
pairs.sort(key=lambda pair: pair[1])
print(pairs)위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
[(13, -3), (4, 1), (1, 2), (9, 10)]
두 번째 요소인 -3, 1, 2, 10을 기준으로 오름차순 정렬된 것을 확인할 수 있습니다.
정리
- 익명 함수는 이름 없이 정의되는 함수이며,
lambda키워드로 생성합니다. - 표현식은 하나만 사용할 수 있고, 그 결과값이 자동으로 반환됩니다.
- 짧고 단순한 로직에 적합하며, 복잡한 로직이라면 일반
def함수를 사용하는 것이 좋습니다.