본문 바로가기
프로그래밍/Python

Python lambda 함수란

by 허구의 2025. 7. 16.
728x90

해당 글에서는  **한 줄짜리 익명 함수** 라고 불리는 람다 함수(lambda function)에 대해 설명드리겠습니다. 이는 본문이 짧고 일회성 함수가 필요한 경우 매우 유용하게 쓰입니다.

 

lambda 함수란 무엇인가요?

lambda 함수는 이름 없이 정의되는 익명 함수입니다. def를 사용하지 않고도 간단한 처리를 위한 함수를 만들 수 있습니다.

기본 문법은 다음과 같습니다:

lambda 매개변수들: 표현식

 

예를 들어, 아래와 같이 사용할 수 있습니다.

add = lambda x, y: x + y
print(add(3, 5))  # 출력: 8

 

위 코드는 아래의 일반 함수 정의와 동일합니다:

def add(x, y):
    return x + y

 

lambda의 주요 특징으로는 아래와 같습니다,

  • 한 줄로 정의 가능 (오직 표현식만 가능, 문(statement)은 불가)
  • 반복적으로 사용하지 않는 일회성 함수에 적합
  • 함수의 인자로 전달할 때 자주 사용
  • 익명 함수이기 때문에 디버깅이 다소 어려울 수 있음

예시들

1. 리스트 정렬 기준 함수로 사용

students = [("Alice", 90), ("Bob", 75), ("Charlie", 85)]

# 두 번째 항목(점수) 기준으로 정렬
students.sort(key=lambda x: x[1])

print(students)
# 출력: [('Bob', 75), ('Charlie', 85), ('Alice', 90)]

 

2. map() 함수와 함께 사용

nums = [1, 2, 3, 4]
squared = list(map(lambda x: x ** 2, nums))
print(squared)  # 출력: [1, 4, 9, 16]

 

3. filter() 함수와 함께 사용

nums = [1, 2, 3, 4, 5, 6]
even = list(filter(lambda x: x % 2 == 0, nums))
print(even)  # 출력: [2, 4, 6]

 

4. reduce() 함수와 함께 사용

from functools import reduce

nums = [1, 2, 3, 4]
product = reduce(lambda x, y: x * y, nums)
print(product)  # 출력: 24

 

lambda 함수는 Python 프로그래밍에서 간결하고 효율적인 코드를 작성할 수 있게 해주는 강력한 기능입니다. 하지만 복잡한 작업에는 오히려 가독성을 해칠 수 있으므로(+디버깅에 어려움이 있을 수 있으므로) 상황에 맞게 lambdadef를 잘 구분해서 사용하는 것이 중요합니다.

 

감사합니다!

728x90