파이썬에서는 일반적으로 def 키워드를 사용해 함수를 정의하지만,
짧고 간단한 함수를 만들 때는 익명 함수(lambda 함수) 를 사용할 수 있습니다.

이번 글에서는 lambda 함수의 개념과 활용법을 다양한 예제와 함께 알아보겠습니다! 🚀
익명 함수(lambda)란?
• 이름이 없는 함수 → 한 줄로 작성되는 간단한 함수
• lambda 키워드를 사용하여 정의
• 일반 함수보다 짧고 간결한 코드를 작성할 때 유용
📌 기본 문법
lambda 매개변수1, 매개변수2, ... : 표현식
✅ lambda를 사용하면 반환값(return)이 자동으로 처리됩니다.
lambda 함수 기본 예제
(1) 일반 함수 vs lambda 함수
# 일반 함수 (def 사용)
def add(x, y):
return x + y
# lambda 함수
add_lambda = lambda x, y: x + y
print(add(3, 5)) # 8
print(add_lambda(3, 5)) # 8
🔹 일반 함수는 def를 사용하여 여러 줄로 작성 가능
🔹 lambda 함수는 한 줄로 간단하게 표현 가능
lambda 함수 활용 예제
(1) 리스트에서 짝수만 필터링하기 (filter 함수와 함께 사용)
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers) # [2, 4, 6, 8, 10]
🔹 filter(함수, 리스트) → 조건을 만족하는 요소만 필터링
🔹 lambda x: x % 2 == 0 → 짝수인 경우만 필터링
(2) 리스트 요소 제곱하기 (map 함수와 함께 사용)
numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x ** 2, numbers))
print(squared_numbers) # [1, 4, 9, 16, 25]
🔹 map(함수, 리스트) → 모든 요소에 변형 적용
🔹 lambda x: x ** 2 → 각 숫자를 제곱
(3) 리스트 정렬 (sorted 함수와 함께 사용)
students = [("철수", 90), ("영희", 85), ("민수", 95)]
# 두 번째 요소(점수)를 기준으로 정렬
sorted_students = sorted(students, key=lambda x: x[1])
print(sorted_students)
# [('영희', 85), ('철수', 90), ('민수', 95)]
🔹 sorted(리스트, key=정렬기준) → 특정 기준으로 정렬
🔹 lambda x: x[1] → 각 튜플의 두 번째 값(점수) 를 기준으로 정렬
(4) 여러 조건으로 정렬 (sorted 사용)
students = [("철수", 90, 20), ("영희", 90, 22), ("민수", 95, 21)]
# 점수 내림차순, 나이 오름차순 정렬
sorted_students = sorted(students, key=lambda x: (-x[1], x[2]))
print(sorted_students)
# [('민수', 95, 21), ('영희', 90, 22), ('철수', 90, 20)]
🔹 lambda x: (-x[1], x[2]) → 점수는 내림차순(-x[1]), 나이는 오름차순(x[2])으로 정렬
(5) 조건에 따라 다른 값 반환 (삼항 연산자와 함께 사용)
check_even = lambda x: "짝수" if x % 2 == 0 else "홀수"
print(check_even(4)) # 짝수
print(check_even(7)) # 홀수
🔹 lambda x: "짝수" if x % 2 == 0 else "홀수"
🔹 삼항 연산자(if-else)를 활용하여 짝수/홀수 판별
lambda 함수를 사용할 때 주의할 점
✅ lambda는 간단한 함수만 작성할 때 사용
✅ 복잡한 로직이 필요한 경우 일반 함수(def)를 사용
❌ 잘못된 예제 (lambda에서 여러 줄 사용 불가)
# 여러 줄을 작성할 경우 SyntaxError 발생
lambda x: print(x); print("출력 완료")
✅ 여러 줄이 필요하면 일반 함수(def) 사용하기
def print_message(x):
print(x)
print("출력 완료")lambda를 사용하면 좋은 경우
✅ 한 번만 사용할 짧은 함수가 필요할 때
✅ 다른 함수(map, filter, sorted)와 함께 사용할 때
✅ 간단한 조건문을 처리할 때
하지만 복잡한 연산이나 여러 개의 조건이 필요한 경우 일반 함수를 사용하는 것이 좋습니다!
마무리 및 요약
✅ lambda 함수는 짧고 간단한 함수를 만들 때 유용
✅ lambda 매개변수: 표현식 형식으로 사용
✅ map(), filter(), sorted() 등과 함께 자주 활용
✅ 여러 줄이 필요하거나 복잡한 연산이 필요한 경우 def 사용이 더 적절
이제 lambda 함수를 활용해 더 간결한 코드를 작성해 보세요!
#파이썬 #Python #익명함수 #lambda #코딩기초 #파이썬공부 #개발자 #프로그래밍 #PythonTips #코딩학습 #Python3
'IT - 프로그래밍 > 파이썬' 카테고리의 다른 글
| 파이썬 배우기: 고차 함수, 클로저 및 데코레이터 완벽 정리 (0) | 2025.03.02 |
|---|---|
| 파이썬 배우기: 재귀 함수 활용하기 (0) | 2025.02.27 |
| 파이썬 배우기: 위치 인수와 키워드 인수 활용하기 (0) | 2025.02.20 |
| 파이썬 배우기: 예외 처리(try-except) 하는 방법 (0) | 2025.02.19 |
| 파이썬 배우기: 파일 입출력 알아보기 (0) | 2025.02.18 |