[파이썬] 함수의 익명함수 (lambda 함수)
Python에서는 함수를 정의할 때 def
키워드를 사용하여 이름을 지정하는 것이 일반적입니다. 하지만, 간단하거나 한 번만 사용되는 작은 함수의 경우는 이름을 지정할 필요가 없을 수 있습니다. 이럴 때 사용되는 것이 익명함수이며, Python에서는 익명함수를 lambda 함수라고 부릅니다.
lambda 함수의 구조
lambda 함수의 구조는 다음과 같습니다:
lambda arguments: expression
lambda
키워드를 사용하여 함수 선언을 시작합니다.arguments
는 함수에 전달되는 인자들을 나타냅니다.expression
은 함수의 로직을 나타내는 표현식입니다.
# add 함수를 lambda 함수로 정의
add = lambda x, y: x + y
result = add(5, 3)
print(result) # 8
위의 예제에서는 add
라는 lambda 함수를 정의하고, 5와 3을 인자로 전달하여 호출한 결과를 출력하고 있습니다. lambda 함수는 x
와 y
라는 인자를 받아서 두 수를 더하여 반환하는 작업을 수행합니다.
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 함수를 사용하면 단 한 번만 사용되는 간단한 함수를 간결하게 정의할 수 있습니다. 하지만, 복잡한 작업이 필요하거나 재사용이 필요한 경우에는 일반적인 함수 정의를 사용하는 것이 좋습니다.