기술블로그
✅ Python 핵심 문법: lambda 함수 완전 정리
Chansman
2025. 5. 27. 11:02
✅ Python 핵심 문법: lambda 함수 완전 정리
1. 📌 lambda란?
- lambda는 **익명 함수(이름 없는 함수)**를 만들 때 사용하는 Python 문법입니다.
- 보통 짧고 간단한 함수를 한 줄로 정의할 때 사용합니다.
lambda 매개변수: 결과 표현식
예시:
lambda x, y: x + y
→ 두 수를 더하는 함수이며, def 없이 함수처럼 사용 가능합니다.
2. ✅ lambda vs def 비교
구분 lambda def 함수
이름 | 없음 (익명) | 있음 (이름 필수) |
줄 수 | 한 줄만 가능 | 여러 줄 가능 |
용도 | 간단한 함수 | 복잡한 로직 포함 함수 |
# lambda
add = lambda x, y: x + y
print(add(3, 4)) # 7
# def
def add(x, y):
return x + y
print(add(3, 4)) # 7
3. 🔧 자주 쓰이는 lambda 예시
✅ 리스트 정렬 기준 설정
items = [("banana", 3), ("apple", 1), ("cherry", 2)]
sorted_items = sorted(items, key=lambda x: x[1])
print(sorted_items)
# [('apple', 1), ('cherry', 2), ('banana', 3)]
✅ map()과 함께 사용
nums = [1, 2, 3]
doubled = list(map(lambda x: x * 2, nums))
print(doubled) # [2, 4, 6]
✅ filter()와 함께 사용
nums = [1, 2, 3, 4, 5]
even = list(filter(lambda x: x % 2 == 0, nums))
print(even) # [2, 4]
4. ⏱️ 실전 예시: timeit과 lambda
lambda는 성능 측정을 위한 timeit 함수와 함께 자주 사용됩니다.
import timeit, json
TWITTER_JSON = {"user": "@hello", "text": "tweet!"}
print(timeit.timeit(lambda: json.dumps(TWITTER_JSON)))
🔍 이 코드의 의미는?
- lambda: → 매개변수 없이
- json.dumps(TWITTER_JSON) → 이 동작만 반복 실행
- timeit()은 이 함수를 수천 번 실행하여 평균 실행 시간 측정
동일한 기능을 일반 함수로 쓰면:
def encode():
return json.dumps(TWITTER_JSON)
print(timeit.timeit(encode))
5. ⚠️ lambda 주의사항
- 여러 줄 로직은 사용할 수 없음
- 너무 복잡한 경우는 가독성이 떨어지므로 def 사용 권장
✅ 요약 정리
항목 설명
이름 | lambda (익명 함수) |
형식 | lambda 매개변수: 표현식 |
장점 | 짧고 간단, 함수형 프로그래밍에 적합 |
단점 | 가독성 낮음, 복잡한 처리 어려움 |
활용 | 정렬 기준, map, filter, timeit 등에서 자주 사용 |
lambda는 Python에서 자주 사용되지만, 언제 어디서 사용하는지 알면 더 효율적으로 활용할 수 있습니다. 복잡한 로직은 def를 사용하고, 짧고 일회성 함수에는 lambda를 똑똑하게 활용해보세요!