Python에서 람다 함수는 lambda 키워드를 사용하여 정의하는 작은 익명 함수입니다. 일반 함수는 def를 사용해 정의하지만, 람다 함수는 짧고 즉석에서 사용할 함수로, 주로 재사용되지 않는 간단한 작업에 사용됩니다.
기본 문법
람다 함수의 문법은 다음과 같습니다:
lambda 매개변수: 표현식
- lambda: 람다 함수를 정의하는 키워드입니다.
- 매개변수: 함수가 받는 입력값으로, 여러 개의 매개변수를 사용할 수 있습니다.
- 표현식: 함수가 평가하고 반환하는 단일 표현식입니다. 람다 함수는 여러 개의 표현식이나 문장을 포함할 수 없습니다.
람다 함수 예제
기본적인 람다 함수
# 주어진 숫자에 10을 더하는 람다 함수
add_ten = lambda x: x + 10
print(add_ten(5)) # 출력: 15
여기서 lambda x: x + 10은 x를 입력받아 x + 10을 반환하는 람다 함수입니다. 이는 다음과 같은 일반 함수와 동일합니다:
def add_ten(x):
return x + 10
여러 개의 매개변수를 가진 람다 함수
# 두 숫자를 곱하는 람다 함수
multiply = lambda x, y: x * y
print(multiply(4, 5)) # 출력: 20
이 람다 함수는 두 개의 매개변수를 받아서 그들의 곱을 반환합니다.
람다 함수를 인자로 사용하는 경우
람다 함수는 map(), filter(), sorted()와 같은 고차 함수의 인자로 자주 사용됩니다.
map() 사용하기
numbers = [1, 2, 3, 4, 5]
squared_numbers = map(lambda x: x ** 2, numbers)
print(list(squared_numbers)) # 출력: [1, 4, 9, 16, 25]
여기서 lambda x: x ** 2는 numbers 리스트의 각 숫자를 제곱합니다.
filter() 사용하기
numbers = [1, 2, 3, 4, 5]
even_numbers = filter(lambda x: x % 2 == 0, numbers)
print(list(even_numbers)) # 출력: [2, 4]
이 예제에서 lambda x: x % 2 == 0은 numbers 리스트에서 짝수만 필터링합니다.
sorted() 사용하기
# 튜플 리스트를 두 번째 요소를 기준으로 정렬
data = [(1, 'apple'), (2, 'banana'), (3, 'cherry')]
sorted_data = sorted(data, key=lambda x: x[1])
print(sorted_data) # 출력: [(1, 'apple'), (2, 'banana'), (3, 'cherry')]
여기서 lambda x: x[1]은 튜플 리스트를 각 튜플의 두 번째 요소를 기준으로 정렬합니다.
리스트 내포에서 람다 함수 사용하기
# 람다 함수를 사용하여 제곱된 숫자 리스트 만들기
numbers = [1, 2, 3, 4, 5]
squared_numbers = [(lambda x: x ** 2)(x) for x in numbers]
print(squared_numbers) # 출력: [1, 4, 9, 16, 25]
이 예제에서 람다 함수는 리스트 내포 내에서 사용되어 제곱된 숫자 리스트를 생성합니다.
람다 함수의 특징
- 익명: 람다 함수는 이름이 없으며, 변수에 할당하여 사용할 수 있습니다.
- 단일 표현식: 람다 함수는 하나의 표현식만을 가질 수 있으며, 여러 개의 표현식이나 문장을 포함할 수 없습니다.
- 간결함: 짧고 간단한 작업을 위해 사용됩니다. 전체 함수 정의가 과할 때 유용합니다.
- 함수형 프로그래밍: map, filter, reduce와 같은 함수형 프로그래밍 기법과 함께 자주 사용됩니다.
람다 함수는 Python에서 간단하고 일시적인 함수가 필요할 때 유용하며, 코드의 간결성과 재사용성을 높이는 데 도움을 줍니다.
#python #람다함수 #lambda #람다
'파이썬 > 함수' 카테고리의 다른 글
함수 - 사용자 정의 함수 (0) | 2024.08.10 |
---|