C

파이썬 lambda 람다 함수 사용법 — 한 줄 익명 함수 정리

2026-06-13 · Python · 파이썬 · 기초 · 함수

파이썬 lambda 람다 함수란?

파이썬 lambda(람다) 함수는 이름 없이 한 줄로 정의하는 작은 익명 함수입니다. def로 함수를 따로 만들 만큼 거창하지 않은 간단한 동작을, 필요한 그 자리에 바로 적어 넣을 때 사용합니다. 특히 sorted(), map(), filter()처럼 함수를 인자로 받는 함수와 함께 자주 쓰입니다.

기본 문법

lambda 매개변수: 반환할_표현식

def 함수와 비교해 보면 차이가 한눈에 보입니다. 아래 두 함수는 완전히 같은 동작을 합니다.

# def 방식
def add(a, b):
    return a + b

# lambda 방식
add = lambda a, b: a + b

print(add(3, 4))  # 7

람다는 return을 쓰지 않습니다. 콜론 뒤의 표현식 결과가 자동으로 반환됩니다.

인자가 없거나 여러 개일 때

hello = lambda: "안녕"
print(hello())          # 안녕

mul = lambda x, y, z: x * y * z
print(mul(2, 3, 4))     # 24

실전 예제 — 람다가 빛나는 곳

sorted()의 정렬 기준

튜플 리스트를 두 번째 값 기준으로 정렬하는 예제입니다.

people = [("민수", 25), ("지영", 19), ("철수", 31)]
by_age = sorted(people, key=lambda p: p[1])
print(by_age)
# [('지영', 19), ('민수', 25), ('철수', 31)]

map() — 모든 요소 변환

nums = [1, 2, 3, 4]
squared = list(map(lambda x: x ** 2, nums))
print(squared)  # [1, 4, 9, 16]

filter() — 조건에 맞는 것만

nums = [1, 2, 3, 4, 5, 6]
evens = list(filter(lambda x: x % 2 == 0, nums))
print(evens)  # [2, 4, 6]

조건(삼항) 표현식 넣기

sign = lambda x: "양수" if x > 0 else "음수 또는 0"
print(sign(5))   # 양수
print(sign(-2))  # 음수 또는 0

람다 vs def 비교

구분lambdadef
이름없음(익명)있음
본문표현식 하나여러 줄 가능
return자동 반환명시 필요
적합한 경우짧은 일회용 함수복잡하고 재사용되는 함수

자주 하는 실수

  • 람다에 변수 이름 붙이기: f = lambda x: x+1처럼 람다를 변수에 할당하는 것은 권장되지 않습니다. 이름이 필요하면 그냥 def를 쓰는 편이 가독성에 좋습니다.
  • 여러 줄 로직 욱여넣기: 람다 본문은 표현식 하나만 가능합니다. if문이나 반복문, 여러 동작이 필요하면 def를 사용하세요.
  • 반복문 변수 캡처: 반복문 안에서 람다를 만들면 모든 람다가 마지막 변수 값을 공유할 수 있습니다. lambda x, i=i: ...처럼 기본값으로 현재 값을 고정하세요.
  • print를 본문에 사용: 옛 파이썬2 습관으로 lambda: print(...)를 쓰면 반환값이 None입니다. 람다는 "값을 반환"하는 용도가 자연스럽습니다.

자주 묻는 질문

Q. 람다와 def 중 무엇을 써야 하나요?

한 줄짜리 간단한 함수를 sorted, map, filter 등에 잠깐 넘길 때는 람다가 깔끔합니다. 그 외에 이름을 붙여 재사용하거나 로직이 길면 def가 정답입니다.

Q. 람다로 map/filter를 쓰는 것보다 더 나은 방법이 있나요?

많은 경우 리스트 컴프리헨션이 더 읽기 쉽습니다. 예: [x**2 for x in nums]map(lambda x: x**2, nums)보다 직관적입니다. 상황에 맞게 선택하세요.

Q. 람다에 기본값 매개변수를 줄 수 있나요?

네. lambda x, y=10: x + y처럼 def와 동일하게 기본값을 지정할 수 있습니다. 위에서 언급한 반복문 변수 캡처 문제를 해결할 때도 이 기능을 활용합니다.

파이썬 lambda 람다 함수 사용법 — 한 줄 익명 함수 정리 | CodeMaster 블로그 | CodeMaster