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 리소스
관련 대화형 튜토리얼, 치트 시트, 코드 비교를 통해 지식을 확장하세요.
Python에서 Lambda 함수를 사용하는 방법(익명 함수)
Python에서 람다 함수를 사용하는 방법을 알아보세요. 람다 키를 사용하여 익명 함수, 인라인 콜백 및 목록 데이터 정렬을 마스터하세요.
Python 문자열 메서드 치트 시트
Python 문자열 조작에 대한 완전한 참조 가이드입니다. 문자열 속성의 서식 지정, 검색, 분할, 바꾸기 및 확인을 마스터합니다.
Python 대 JavaScript: 어떤 프로그래밍 언어가 가장 좋나요?
Python과 JavaScript를 포괄적으로 비교합니다. 구문 차이점, 성능, 사용 사례(백엔드와 프런트엔드) 및 코딩 예제를 살펴보세요.