람다 함수(lambda function)는 파이썬에서 사용되는 익명 함수로, 한 줄로 정의할 수 있는 간단한 함수이다. 일반적인 함수처럼 이름을 가지지 않고, 간결하게 함수를 정의하고 사용할 때 유용하다. 함수를 정의하고 사용하는 번거로움을 줄여주어 주로, 복잡한 작업보다는 짧고 간단한 연산이나 임시로 필요한 작업에 주로 사용된다.
lambda 인자1, 인자2, ... : 표현식
lambda
키워드: 람다 함수를 정의할 때 사용.람다 함수는 def
키워드로 함수를 정의하는 것과 다르게 return
문이 필요 없으며 표현식 자체가 반환된다.
# x에 2를 더하는 람다 함수
add_two = lambda x: x + 2
# 결과 출력
print(add_two(3)) # 출력: 5
lambda x: x + 2
는 x
를 받아서 x + 2
를 반환하는 함수# 두 숫자의 합을 구하는 람다 함수
add = lambda x, y: x + y
# 결과 출력
print(add(3, 5)) # 출력: 8
x
와 y
두 개의 인자를 받아 그 합을 반환map()
함수와 함께 사용map()
는 반복 가능한(iterable) 객체(리스트, 튜플 등)의 모든 요소에 특정 함수를 적용하고, 그 결과를 새로운 map
객체로 반환하는 함수이다.
# 리스트의 각 요소에 2를 곱하는 람다 함수
numbers = [1, 2, 3, 4]
result = map(lambda x: x * 2, numbers)
# 결과를 리스트로 변환하여 출력
print(list(result)) # 출력: [2, 4, 6, 8]
filter()
함수와 함께 사용filter()
는 조건을 만족하는 요소만 걸러내는 함수이다.
# 리스트에서 짝수만 필터링하는 람다 함수
numbers = [1, 2, 3, 4, 5, 6]
result = filter(lambda x: x % 2 == 0, numbers)
# 결과를 리스트로 변환하여 출력
print(list(result)) # 출력: [2, 4, 6]
sorted()
함수와 함께 사용sorted()
함수는 리스트나 튜플의 요소를 특정 기준에 따라 정렬할 수 있다.
# 튜플 리스트를 두 번째 요소(나이) 기준으로 정렬하는 람다 함수
students = [("Alice", 22), ("Bob", 19), ("Charlie", 23)]
sorted_students = sorted(students, key=lambda student: student[1])
# 결과 출력
print(sorted_students) # 출력: [('Bob', 19), ('Alice', 22), ('Charlie', 23)]
reduce()
함수와 함께 사용reduce()
함수는 리스트의 모든 요소를 누적하여 하나의 값으로 줄여나갈 때 사용한다.
from functools import reduce
# 리스트의 모든 값을 곱하는 람다 함수
numbers = [1, 2, 3, 4]
result = reduce(lambda x, y: x * y, numbers)
# 결과 출력
print(result) # 출력: 24
map()
, filter()
, sorted()
등과 결합해 함수형 프로그래밍 스타일을 구현할 수 있음.def
)를 사용하는 것이 더 적합함.