Python에서 Lambda 함수를 사용하는 방법(익명 함수)

Python에서 람다 함수를 사용하는 방법을 알아보세요. 람다 키를 사용하여 익명 함수, 인라인 콜백 및 목록 데이터 정렬을 마스터하세요.

Editor에서 이 솔루션을 사용해 보세요.

개요

Python에서 함수는 일급 시민입니다. 즉, 함수를 변수에 할당하고, 다른 함수에 인수로 전달하고, 함수에서 반환할 수 있습니다. 표준 함수는 `def` 키워드를 사용하여 선언되지만 Python은 익명 인라인 함수를 생성하기 위한 약식 구문인 `lambda` 함수도 제공합니다.

람다 함수는 'lambda' 키워드와 인수 목록, 콜론, 단일 표현식으로 정의됩니다. 구문은 '람다 인수: 표현식'입니다. `def` 함수와 달리 람다는 `return` 문이 필요하지 않습니다. 표현식의 결과가 자동으로 반환됩니다. 단일 논리 회선으로 제한되므로 간단한 일회성 작업에 이상적입니다.

람다 함수는 `sorted()`, `map()`, `filter()`와 같은 고차 함수에 대한 인수로 가장 일반적으로 사용됩니다. 예를 들어 `sorted()`의 `key` 인수에 람다 함수를 전달하여 사용자 정의 정렬 기준을 정의하거나 이를 그래픽 또는 이벤트 기반 애플리케이션 내에서 경량 콜백 함수로 사용할 수 있습니다.

코드 및 실행 출력

이 스크립트는 람다를 사용하여 경량 익명 함수를 구성하는 방법을 보여줍니다.

# 1. Simple lambda function assigned to a variable
double = lambda x: x * 2
print("Double of 5:", double(5))

# 2. Multi-argument lambda
add = lambda x, y: x + y
print("Sum of 3 + 4:", add(3, 4))

# 3. Using lambda as a sorting key (sorting by age)
people = [
    {"name": "Alice", "age": 28},
    {"name": "Bob", "age": 22},
    {"name": "Charlie", "age": 35}
]
people.sort(key=lambda person: person["age"])
print("Sorted by age:", people)
터미널 출력
Double of 5: 10
Sum of 3 + 4: 7
Sorted by age: [{'name': 'Bob', 'age': 22}, {'name': 'Alice', 'age': 28}, {'name': 'Charlie', 'age': 35}]

단계별 구현

  • 람다 키워드와 쉼표로 구분된 매개변수 이름을 작성합니다.
  • 콜론을 입력한 다음 평가하고 반환하려는 단일 표현식을 입력하세요.
  • sorted(), map() 또는 filter()와 같은 함수에 대한 콜백으로 람다를 직접 전달합니다.

자주 묻는 질문

람다 함수에 루프나 여러 문이 포함될 수 있나요?

아니요, Python의 람다 함수는 단일 표현식으로 엄격하게 제한됩니다. 복잡한 논리, 루프 또는 변수 할당이 필요한 경우 def를 사용하여 표준 함수를 정의해야 합니다.

변수에 람다 함수를 할당해야 합니까?

일반적으로 아니요. PEP 8 지침에서는 표준 함수가 더 나은 스택 추적 이름을 제공하므로 변수에 람다를 할당하는 대신 표준 def 문을 사용하도록 제안합니다.

관련 주제

권장 Python 리소스

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