Stay Hungry Stay Foolish

알고리즘

[파이썬] lambda(람다) 함수

dev스카이 2024. 10. 30. 22:08

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로 작성한 함수와 같은 기능을 수행할 수 있다.