Python에서 Lambda 함수를 사용하는 방법(익명 함수)
Python에서 람다 함수를 사용하는 방법을 알아보세요. 람다 키를 사용하여 익명 함수, 인라인 콜백 및 목록 데이터 정렬을 마스터하세요.
개요
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 리소스
관련 대화형 튜토리얼, 치트 시트, 코드 비교를 통해 지식을 확장하세요.
Python 함수
Python 함수를 마스터하세요. def를 사용하여 재사용 가능한 코드를 작성하고, 인수를 정의하고, 값을 반환하고, 로컬 및 전역적으로 범위를 이해하는 방법을 알아보세요.
Python 수학 모듈 함수 치트 시트
Python 수학 표준 라이브러리에 대한 빠른 참조 가이드입니다. 삼각함수, 로그, 반올림 및 산술 함수를 사용하는 방법을 알아보세요.
Python 대 JavaScript: 어떤 프로그래밍 언어가 가장 좋나요?
Python과 JavaScript를 포괄적으로 비교합니다. 구문 차이점, 성능, 사용 사례(백엔드와 프런트엔드) 및 코딩 예제를 살펴보세요.