기술블로그

✅ 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를 똑똑하게 활용해보세요!