람다(lambda) 함수란?

2025. 4. 11. 11:05·Computer Science
728x90

Python을 사용하는 개발자라면 한 번쯤 마추졌을 람다 함수(lambda function)

짧고 간결한 코드 작성을 도와주며, 내장 함수들과 결합할 때 진가를 발휘합니다.


람다 함수란?

람다 함수는 익명 함수(Anonymous Function) 의 일종으로, def 없이도 한 줄로 간단한 함수를 정의할 수 있게 해줍니다.

기본 문법

lambdb arguments: expression

예시:

add = lambdb x, y: x + y
print(add(2, 3))
# 5

이는 일반적인 함수 정의와 동일하게 작동합니다:

def add(x, y):
    return x + y

print(add(2, 3))
# 5

단, 람다 함수는 한 줄짜리 표현식만 가능하며, 복잡한 로직에는 적합하지 않습니다.


람다 함수는 어디에 쓰일까?

람다 함수는 주로 다른 함수의 인자로 전달될 때 진가를 발휘합니다.

Python의 다양한 내장 함수들과 함께 사용하여 데이터를 효율적으로 처리할 수 있습니다.


내장 함수 + 람다 함수 실전 예시

1. map() - 요소를 변형할 때

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

2. filter() - 조건에 맞는 값만 추출할 때

words = ['apple', 'bat', 'carrot', 'dog']
short_words = list(filter(lambda w: len(w) <= 3, words))
print(short_words)  
# ['bat', 'dog']

3. sorted() - 사용자 정의 기준으로 정렬할 때

students = [('Tom', 80), ('Jane', 92), ('Mike', 77)]
sorted_students = sorted(students, key=lambda x: x[1])
print(sorted_students)  
# [('Mike', 77), ('Tom', 80), ('Jane', 92)]

4. reduce() - 누적 연산이 필요할 때

from functools import reduce

nums = [1, 2, 3, 4]
product = reduce(lambda x, y: x * y, nums)
print(product)  
# 24

5. any() / all() - 조건 만족 여부 판별 시

nums = [2, 4, 6, 8]
print(all(map(lambda x: x % 2 == 0, nums)))  
# True

nums2 = [1, 2, 3]
print(any(map(lambda x: x % 2 == 0, nums2)))  
# True

언제 람다 함수가 효과적일까?

상황 이유
코드가 단순하고 한 줄로 표현 가능할 때 lambda가 def보다 더 짧고 간결함
일회성으로 함수 정의가 필요한 경우 굳이 함수 이름을 만들 필요 없음
map, filter, sorted 등 고차 함수와 함께 사용 할 때 함수 인자를 간단하게 전달 가능
콜백 함수가 필요한 라이브러리 함수에서 간단한 조건, 계산 처리 시 유용

언제 lambda 대신 def 를 써야 할까?

람다 함수는 간단한 표현식만 처리 가능합니다. 다음과 같은 경우에는 def로 함수 정의를 명확하게 해주는것이 좋습니다.

  • 여러 줄의 로직이 필요한 경우
  • 디버깅이나 로깅이 필요한 경우
  • 주석이 필요한 복잡한 함수
  • 재사용할 함수 정의가 필요한 경우

람다 함수 패턴 요약표

목적 함수 예시
값 변형 map() map(lambda x: x+1, nums)
조건 필터링 filter() filter(lambda x: x > 10, nums)
사용자 정렬 sorted() sorted(data, key=lambda x: x\[1\])
누적 연산 reduce() reduce(lambda x, y: x + y, nums)
조건 검사 any() / all() all(map(lambda x: 조건, 리스트))

마무리

람다 함수는 Python에서 코드를 짧고 깔끔하게 유지하는데 유용한 도구입니다.

특히 내장 함수들과 조합하면 데이터 처리 로직을 파리미터화된 방식과 복잡로직 최소화로 구성할 수 있습니다.

감사합니다.

728x90
반응형
저작자표시 비영리 변경금지

'Computer Science' 카테고리의 다른 글

정렬 알고리즘 (버블, 선택, 삽입)  (0) 2025.04.15
시간 복잡도와 Big-O  (0) 2025.04.15
클라우드 IaaS, PaaS, SaaS 비교  (0) 2024.03.04
ad-hoc이란? (adhoc)  (1) 2023.11.01
순회 (Traversal) 란?  (0) 2023.09.20
'Computer Science' 카테고리의 다른 글
  • 정렬 알고리즘 (버블, 선택, 삽입)
  • 시간 복잡도와 Big-O
  • 클라우드 IaaS, PaaS, SaaS 비교
  • ad-hoc이란? (adhoc)
Balang
Balang
음악 전공생의 개발일지
  • Balang
    Balang
    Balang
  • 전체
    오늘
    어제
  • 반응형
    • All Post (131) N
      • python (36) N
        • selenium (4)
        • algorithm (3)
        • Django (6) N
        • Pandas | Numpy (19)
      • SQL (9)
      • Data Engineer (29)
      • Data Scientist (3)
      • Data Analysis (3)
      • Computer Science (35)
      • Why? (15)
      • 마음가짐 (1)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
Balang
람다(lambda) 함수란?
상단으로

티스토리툴바