[파이썬] 함수의 익명함수 (lambda 함수)

Python에서는 함수를 정의할 때 def 키워드를 사용하여 이름을 지정하는 것이 일반적입니다. 하지만, 간단하거나 한 번만 사용되는 작은 함수의 경우는 이름을 지정할 필요가 없을 수 있습니다. 이럴 때 사용되는 것이 익명함수이며, Python에서는 익명함수를 lambda 함수라고 부릅니다.

lambda 함수의 구조

lambda 함수의 구조는 다음과 같습니다:

lambda arguments: expression
# add 함수를 lambda 함수로 정의
add = lambda x, y: x + y
result = add(5, 3)
print(result)  # 8

위의 예제에서는 add라는 lambda 함수를 정의하고, 5와 3을 인자로 전달하여 호출한 결과를 출력하고 있습니다. lambda 함수는 xy라는 인자를 받아서 두 수를 더하여 반환하는 작업을 수행합니다.

lambda 함수의 활용

lambda 함수는 다음과 같은 상황에서 유용하게 사용될 수 있습니다:

1. 간단한 연산 수행

lambda 함수는 간단한 연산을 수행할 때 편리합니다. 이름을 정의하지 않고 직접 사용할 수 있기 때문에 코드의 가독성을 높일 수 있습니다.

# 두 수의 곱을 계산하는 lambda 함수
multiply = lambda x, y: x * y

result = multiply(5, 3)
print(result)  # 15

2. 정렬 기준으로 사용

lambda 함수는 sorted() 함수의 key 매개변수와 함께 사용하여 정렬 기준을 지정하는 데에도 유용합니다.

fruits = ["apple", "banana", "cherry", "date"]

# 문자열의 길이 기준으로 정렬
sorted_fruits = sorted(fruits, key=lambda x: len(x))
print(sorted_fruits)  # ['date', 'apple', 'cherry', 'banana']

위의 예제에서는 sorted() 함수를 사용하여 fruits 리스트를 문자열의 길이에 따라 정렬하였습니다. lambda 함수를 사용하여 x라는 인자의 길이를 반환하는 로직을 작성하였습니다.

lambda 함수를 사용하면 단 한 번만 사용되는 간단한 함수를 간결하게 정의할 수 있습니다. 하지만, 복잡한 작업이 필요하거나 재사용이 필요한 경우에는 일반적인 함수 정의를 사용하는 것이 좋습니다.