1. 람다 함수란?
람다 함수는 간단한 계산을 빠르게 할 수 있는 미니 함수예요.
보통 함수를 만들려면 이름을 붙여야 하지만, 람다 함수는 이름 없이 바로 사용할 수 있어요.
예시
# 일반 함수
def add(x, y):
return x + y
# 람다 함수
add_lambda = lambda x, y: x + y
두 함수는 같은 일을 해요!
add(10, 20)와 add_lambda(10, 20) 둘 다 30을 반환합니다.
2. 람다 함수의 문법
람다 함수의 기본 문법은 아주 간단해요:
lambda 입력값: 계산식
예시
lambda x: x * 2 # 입력값 x를 2배로 만드는 함수
3. 언제 람다 함수를 사용할까?
람다 함수는 간단한 계산이 필요할 때 사용해요.
- 이름을 붙이지 않아도 되는 함수가 필요할 때.
- 한 번만 사용할 계산이라면 람다 함수가 좋아요.
4. 람다 함수 활용 예시
(1) 리스트의 각 숫자를 두 배로 만들기
numbers = [1, 2, 3, 4, 5]
doubled = list(map(lambda x: x * 2, numbers))
print(doubled) # 출력: [2, 4, 6, 8, 10]
- lambda x: x * 2는 숫자를 두 배로 만드는 함수예요.
- map은 이 함수를 numbers 리스트에 적용해서 새로운 리스트를 만들어줍니다.
(2) 홀수만 걸러내기
numbers = [1, 2, 3, 4, 5]
odd_numbers = list(filter(lambda x: x % 2 != 0, numbers))
print(odd_numbers) # 출력: [1, 3, 5]
- lambda x: x % 2 != 0는 홀수인지 확인하는 함수예요.
- filter는 이 함수를 적용해서 홀수만 남겨줍니다.
(3) 리스트의 합 구하기
from functools import reduce
numbers = [1, 2, 3, 4, 5]
total = reduce(lambda x, y: x + y, numbers)
print(total) # 출력: 15
- lambda x, y: x + y는 두 숫자를 더하는 함수예요.
- reduce는 이 함수를 반복적으로 적용해서 리스트의 모든 숫자를 더해줍니다.
5. 람다 함수의 장점
- 간단해요: 한 줄로 함수 작성 끝!
- 이름이 필요 없어요: 계산에만 집중할 수 있어요.
예시: 리스트의 숫자를 제곱하기
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x ** 2, numbers))
print(squared) # 출력: [1, 4, 9, 16, 25]
6. 람다 함수의 주의점
- 너무 복잡한 계산은 람다 함수에 적합하지 않아요.
읽기 어려워질 수 있으니, 복잡한 경우엔 일반 함수를 쓰는 게 좋아요.
복잡한 경우: 일반 함수로 작성
# 복잡한 계산은 일반 함수로 작성
def calculate_discount(price):
if price > 100:
return price * 0.9
return price
print(calculate_discount(150)) # 출력: 135.0
정리
람다 함수는:
- 간단한 계산을 빠르게 만들고 싶을 때 사용.
- 이름 없이도 바로 계산 가능.
- map, filter, reduce 같은 함수와 자주 사용.
가장 간단한 예제
# 5를 두 배로 만들기
double = lambda x: x * 2
print(double(5)) # 출력: 10
'Python' 카테고리의 다른 글
4.2 문자열과 리스트 (1) | 2024.11.29 |
---|---|
4.1 자료형 (0) | 2024.11.29 |
3.3 지역변수, 전역변수 (0) | 2024.11.29 |
3.2.4 연습 문제: 놀이 공원 (1) (1) | 2024.11.28 |
3.2.3 연습 문제: 이자(단리) 계산 (1) | 2024.11.28 |