
매개변수 : 함수 정의 시 입력받는 값 (예.def func(x):)
인수 : 함수 호출 할 때 실제로 전달하는 값 (예.func(10)
lambda 키워드를 사용해 익명 함수를 한 줄로 표현한다
일반 함수처럼 def로 정의하지 않아도 된다.
(lambda 매개변수: 리턴값)(인수)
람다 함수는 익명 함수
바로 사용하기 위해서는 변수에 할당이 필요하다
multiply = lambda x, y: x * y
print(multiply(3, 4)) # 12
람다 안에서는 새로운 변수 생성은 불가능하다
lambda x: y = x + 1 # ❌ 오류!
다만, 함수의 바깥에 있는 변수는 참조 가능하다
rate = 0.1
tax = lambda price: price * rate
각 효소에 함수를 적용해 새 리스트를 작성한다
map(함수, 리스트)
prices = [1000, 2000, 3000]
# 10% 할인 가격 계산
discounted = list(map(lambda p: p * 0.9, prices))
print(discounted) # [900.0, 1800.0, 2700.0]
조건에 맞는 요소만 필터링한다
filter(조건 함수, 리스트)
모든 요소를 누적으로 계산한다
파이썬 3에서는 functool에서 불러와야 한다
scores = [65, 80, 45, 90]
# 60점 이상만 추출
passed = list(filter(lambda s: s >= 60, scores))
print(passed) # [65, 80, 90]
reduce(함수, 리스트)
from functools import reduce
temps = [23, 25, 20, 22]
# 평균 계산 (총합 / 개수)
total = reduce(lambda x, y: x + y, temps)
average = total / len(temps)
print(average) # 22.5