lambda 함수
파이썬의 lambda 함수는 익명 함수를 생성할 수 있는 기능이다. lambda를 사용하면, def 키워드를 사용하지 않고도 간단한 함수를 만들 수 있다. 주로 짧고 간단한 함수가 필요할 때 사용된다.
기본 구문
lambda 인자1, 인자2, ... : 표현식
- lambda : 키워드
- 인자 : 입력 인자
- 표현식 : 함수가 반환할 값 (하나의 표현식만 가능)
사용 방법
1️⃣ 기본 사용법
# 두 수의 합을 계산하는 lambda 함수
add = lambda x, y: x + y
result = add(5, 3)
print(result) # 출력: 8
- lambda x, y: x + y는 두 개의 인자를 받아 합을 계산하는 함수이다.
2️⃣ 리스트 정렬에 사용
lambda 함수는 종종 정렬이나 필터링과 같은 고차 함수에서 사용된다.
# 튜플 리스트를 두 번째 요소를 기준으로 정렬
data = [(1, 'apple'), (3, 'banana'), (2, 'cherry')]
sorted_data = sorted(data, key=lambda x: x[1])
print(sorted_data) # 출력: [(1, 'apple'), (3, 'banana'), (2, 'cherry')]
- key=lambda x: x[1]에서 각 튜플의 두 번째 요소를 기준으로 정렬한다.
3️⃣ map()과 filter()에서 사용
lambda는 map()이나 filter()와 같은 고차 함수에서도 자주 사용된다.
# 리스트의 각 요소에 2를 곱하기
numbers = [1, 2, 3, 4]
doubled = list(map(lambda x: x * 2, numbers))
print(doubled) # 출력: [2, 4, 6, 8]
# 리스트에서 짝수만 필터링
evens = list(filter(lambda x: x % 2 == 0, numbers))
print(evens) # 출력: [2, 4]
주의 사항
- lambda 함수는 여러 개의 표현식이나 복잡한 로직을 포함할 수 없습니다. 단일 표현식만 사용할 수 있다.
- 가독성을 위해 너무 복잡한 로직을 lambda로 작성하는 것은 피하는 것이 좋다.
요약
- lambda는 짧고 간단한 함수를 정의할 때 사용되는 익명 함수이다.
- 주로 정렬, 필터링, 매핑과 같은 고차 함수와 함께 사용된다.
- lambda 함수는 단일 표현식만 허용하며, def로 작성한 함수와 같은 기능을 수행할 수 있다.
'알고리즘' 카테고리의 다른 글
[파이썬] 이진법, 이진수, 2진수 변환 방법 (0) | 2024.11.15 |
---|---|
[파이썬] 순열(Permutations) 과 조합(Combinations) (0) | 2024.11.06 |
[파이썬] enumerate() 함수 (0) | 2024.10.29 |
[파이썬] set, 집합 함수 (0) | 2024.10.29 |
[파이썬] zip() 함수 (0) | 2024.10.25 |