람다란?
람다는 이전에 배운 함수와 비슷한 역할을 하며 함수명을 지어줄 필요가 없어 익명함수로 불린다.
한 줄로 함수를 정의할 수 있어 간결하고 일회성으로 사용하기 좋다.
람다 사용 방법
람다는 lambda 매개변수 : 반환값으로 만들 수 있다.
# 람다 사용법
# lambda 매개변수 : 반환값
add_lambda = lambda x, y : x + y
# 람다 호출법
add_lambda(2, 3)
5
위처럼 변수에 할당시켜 호출시킬 수도 있지만 람다는 할당 없이 호출시킬 수도 있다.
# 별도의 할당 없이 람다 바로 호출
y = 5
(lambda x: x + y)(10)
15
그렇다면 사용자 정의 함수와 비교해 보자.
# 일반 함수로 정의
def add(x, y):
return x + y
# 람다 함수로 정의
add_lambda = lambda x, y: x + y
print(add(3, 5))
print(add_lambda(3, 5))
8
8
람다와 같이 활용하는 함수들
보통 람다와 같이 활용하는 몇몇 함수들을 소개하겠다.
1. map함수
map함수는 리스트나 튜플에 들어있는 요소를 순서대로 하나씩 꺼내 함수에 적용시켜 준다.
다음은 map함수로 리스트 안에 들어있는 요소들의 제곱값을 새로운 리스트에 넣는 예제이다.
# map() : 요소를 순서대로 꺼내 함수에 적용한다.
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x ** 2, numbers))
print(squared)
[1, 4, 9, 16, 25]
2. filter함수
filter함수는 특정한 조건에 맞는 요소만 걸러낼 때 사용한다.
# filter() 특정 조건에 맞는 요소만 거른다.
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers) # 짝수만 걸러 새로운 리스트에 저장됨.
[2, 4, 6]
3. reduce함수
reduce함수는 어떠한 연산을 할 때 값을 계속 누적시켜 나간다.
즉, 여러 값을 하나의 값으로 줄일 때 사용하며 reduce함수는 위 함수들과는 다르게 import 해줘야 한다.
# reduce() : 연산 시 값을 누적해나감.
from functools import reduce # reduce함수 불러기기
numbers = [1, 2, 3, 4, 5]
sum_numbers = reduce(lambda x, y: x + y, numbers) # ((((1 + 2) + 3) + 4) + 5) = 15
print(sum_numbers)
15
결론
람다는 위에서 소개한 함수들 말고도 여러 함수들과 같이 사용할 수 있다.
하지만 잘못 사용하면 가독성이 떨어지는 등 문제가 생길 수 있으니 조심해서 사용도록 한다.
'Python > Foundation' 카테고리의 다른 글
13강. [Python]클래스 (0) | 2025.02.02 |
---|---|
11강. [Python]함수 (0) | 2025.02.02 |
10강. [Python]반복문 (0) | 2025.02.02 |
09강. [Python]조건문 (0) | 2025.02.02 |
08강. [Python]세트 (0) | 2025.02.02 |