Python Lambda 함수: 익명 함수 가이드

Python에서 익명 람다 함수를 작성하는 방법을 알아보세요. 람다 구문과 함께 map(), filter() 및 sorted()를 사용하는 함수형 프로그래밍 패턴을 마스터하세요.

에디터에서 사용해 보세요

개요

Python에서 익명 함수라고도 알려진 람다 함수는 표준 `def` 키워드나 공식 이름이 필요하지 않은 작고 빠른 한 줄 함수입니다. 일시적이고 빠른 사용을 위한 것이므로 기능적 논리를 인라인으로 직접 인수로 전달할 수 있습니다. 이렇게 하면 코드가 더 간결해지고 한 곳에서만 호출되는 본격적인 도우미 함수를 작성하는 데 따른 오버헤드가 줄어듭니다.

람다 함수의 구문은 '람다 인수: 표현식'으로 간단합니다. 표준 함수와 달리 람다에는 명시적인 `return` 문이 없습니다. 표현식이 평가되어 자동으로 반환됩니다. 또한 람다 함수는 단일 표현식으로 제한됩니다. 즉, 그 안에 복잡한 여러 줄 루프, 할당 또는 조건 블록을 작성할 수 없으므로 깔끔하고 기능적인 접근 방식이 적용됩니다.

람다 함수는 일반적으로 `map()`(목록의 모든 항목에 함수를 적용), `filter()`(조건과 일치하는 항목 유지), `sorted()`(사용자 정의 정렬 키를 사용하여 항목 정렬)와 같은 내장된 고차 함수와 함께 사용됩니다. 예를 들어, 람다를 정렬 키로 사용하면 특정 사전 키로 사전 목록을 정렬하는 것이 매우 쉽습니다. 람다 함수를 이해하면 깔끔한 Python 코드를 작성하는 데 중요한 도구가 됩니다.

코드 및 실행 출력

인라인 익명 함수를 사용하여 복잡한 사전 목록을 정렬하고 데이터 세트를 필터링합니다.

# Sorting using lambda
students = [
    {"name": "Alice", "grade": 88},
    {"name": "Bob", "grade": 95},
    {"name": "Charlie", "grade": 90}
]

# Sort students by grade (descending)
sorted_students = sorted(students, key=lambda s: s["grade"], reverse=True)
print("Sorted students by grade:")
for student in sorted_students:
    print(f"- {student['name']}: {student['grade']}")

# Filtering using lambda
numbers = [1, 2, 3, 4, 5, 6, 7, 8]
odd_numbers = list(filter(lambda x: x % 2 != 0, numbers))
print(f"\nOdd numbers: {odd_numbers}")
터미널 출력
Sorted students by grade:
- Bob: 95
- Charlie: 90
- Alice: 88

Odd numbers: [1, 3, 5, 7]

단계별 구현

  • 사용자 정의 정렬 기준을 list.sort() 및 sorted()에 전달
  • 데이터 과학 파이프라인에 인라인 변환 적용
  • 이벤트 기반 UI 앱에서 빠른 콜백 정의

자주 묻는 질문

람다 함수는 여러 인수를 사용할 수 있나요?

예, 쉼표로 구분된 여러 인수를 정의할 수 있습니다(예: 람다 x, y: x + y).

람다 함수를 익명이라고 부르는 이유는 무엇입니까?

로컬 네임스페이스에 특정 이름을 등록하는 def 함수와 달리 이름 바인딩 없이 생성되기 때문입니다.

관련 주제

권장 Python 리소스

관련 대화형 튜토리얼, 치트 시트, 코드 비교를 통해 지식을 확장하세요.