람다 표현식 사용하기

Tasker_Jang·2026년 2월 26일

1. 람다 표현식이란?

람다 표현식def 키워드 없이 함수를 식(expression) 형태로 간결하게 작성하는 방법입니다. 이름이 없는 함수를 만들기 때문에 익명 함수(Anonymous Function) 라고도 부릅니다.

기본 문법은 다음과 같습니다.

lambda 매개변수들 : 반환값으로 사용할 식

실제로 작성해보면 아래와 같습니다.

# 람다 표현식 작성 — 객체로 출력됨
lambda x: x + 10
# <function <lambda> at 0x...>

이름이 없기 때문에 그냥 실행하면 함수 객체가 반환됩니다. 호출하려면 변수에 할당하거나, 즉시 호출해야 합니다.


2. 람다 표현식 호출하기

변수에 할당해서 호출

# 변수에 할당 후 호출
add_ten = lambda x: x + 10

print(add_ten(5))   # 15
print(add_ten(20))  # 30

즉시 호출 (IIFE 방식)

람다 표현식을 괄호로 감싼 뒤 바로 인수를 전달하면 즉시 호출할 수 있습니다.

# (lambda 매개변수: 식)(인수)
result = (lambda x, y: x + y)(3, 7)
print(result)  # 10

3. 다른 함수의 인수로 활용하기

람다 표현식이 가장 많이 쓰이는 곳은 map(), filter(), sorted() 같은 함수의 인수로 전달할 때입니다. 별도의 함수를 def로 정의하지 않아도 되기 때문에 코드가 훨씬 간결해집니다.

numbers = [1, 2, 3, 4, 5]

# map(): 각 요소에 함수 적용
result = list(map(lambda x: x * 2, numbers))
print(result)  # [2, 4, 6, 8, 10]

# filter(): 조건에 맞는 요소만 추출
evens = list(filter(lambda x: x % 2 == 0, numbers))
print(evens)   # [2, 4]

# sorted(): 정렬 기준 지정
pairs = [(1, 'b'), (3, 'a'), (2, 'c')]
sorted_pairs = sorted(pairs, key=lambda x: x[1])
print(sorted_pairs)  # [(3, 'a'), (1, 'b'), (2, 'c')]

4. 람다 표현식의 제약사항

람다 표현식은 간결함이 장점이지만, 그만큼 할 수 없는 것도 있습니다.

# ❌ 람다 표현식 안에서 새 변수 생성 불가
# lambda x: (y = x + 10)  # SyntaxError!

# ✅ 변수가 필요한 경우 def 함수로 작성
def add_and_store(x):
    y = x + 10
    return y
구분lambdadef
변수 생성❌ 불가✅ 가능
코드 길이한 줄여러 줄
이름없음 (익명)있음
적합한 상황간단한 일회성 함수복잡한 로직

5. 람다 표현식에서 조건부 표현식 사용하기

람다 표현식 안에서도 조건 분기를 표현할 수 있습니다. 단, 일반 if문과 다르게 콜론을 붙이지 않고, if를 사용했다면 반드시 else도 함께 작성해야 합니다.

# 조건부 표현식: 값 if 조건 else 다른값
is_even = lambda x: "짝수" if x % 2 == 0 else "홀수"

print(is_even(4))  # 짝수
print(is_even(7))  # 홀수

elif는 사용할 수 없지만, else 안에 조건부 표현식을 중첩해서 비슷하게 구현할 수 있습니다.

# elif 대신 else 안에 중첩
grade = lambda score: "A" if score >= 90 else ("B" if score >= 80 else "C")

print(grade(95))  # A
print(grade(85))  # B
print(grade(70))  # C

다만 중첩이 깊어지면 가독성이 떨어지므로, 이런 경우에는 def로 함수를 작성하는 것이 더 좋습니다.

profile
ML Engineer 🧠 | AI 모델 개발과 최적화 경험을 기록하며 성장하는 개발자 🚀 The light that burns twice as bright burns half as long ✨

0개의 댓글