1.람다 표현식 (익명 함수)
- 람다 표현식 : 식 형태로 되어 있다고 해서 람다 표현식이라 함
- 람다 표현식은 이름이 없는 함수를 만듦
- 람다 표현식 안에서는 새 변수를 만들 수 없어서 변수가 필요한 코드는 def로 함수를 작성
- 함수를 간편하게 작성할 수 있어서 다른 함수의 인수로 넣을 때 주로 사용
1-1.람다 표현식으로 함수 만들기

lambda 매개변수들: 식
plus_ten = lambda x: x + 10
plus_ten(1)
1-2.람다 표현식 자체를 호출하기
- 람다 표현식은 변수에 할당하지 않고 람다 표현식 자체를 바로 호출할 수 있음
(lambda 매개변수들: 식)(인수들)
(lambda x: x + 10)(1)
1-3.람다 표현식을 인수로 사용하기
- map() 함수의 인수 부분에 간단하게 lambda 함수 만들기
def plus_ten(x):
return x + 10
list(map(plus_ten, [1,2,3]))
# 위 함수를 lambda 표현식으로 변환
list(map(lambda x: x+10, [1,2,3]))
2.람다 표현식과 map, filter, reduce 함수 활용하기
2-1.람다 표현식에 조건부 표현식 사용하기
lambda 매개변수들: 식1 if 조건식 else 식2
lambda 매개변수들: 식1 if 조건식1 else 식2 if 조건식2 else 식3
- map()은 리스트의 요소를 각각 처리하므로 lambda의 반환값도 요소
- 요소가 3의 배수 일때 str(x)로 요소를 문자열로 만들어서 반환, 아닐 떄는 x로 요소 그대로 반환
a = [1,2,3,4,5,6,7,8,9,10]
list(map(lambda x: str(x) if x%3 == 0 else x,a))
2-2.map()에 객체를 여러 개 넣기
- map()은 리스트 등의 반복 가능한 객체를 여러 개 넣을 수 있다
a = [1,2,3,4,5]
b = [2,4,6,8,10]
list(map(lambda x,y: x*y, a, b))
2-3.filter() 사용하기
- filter는 반복 가능한 객체에서 filter에 지정한 함수의 반환값이 True일 때만 해당 요소 가져옴
filter(함수, 반복가능한객체)
a = [8,3,2,10,15,7,1,9,0,11]
list(filter(lambda x: x>5 and x<10, a))
2-4.reduce 사용하기
- reduce는 반복 가능한 객체의 각 요소를 지정된 함수로 처리한 뒤 이전 결과를 누적해서 반환
- reduce는 파이썬 3부터 내장 함수가 아님, functools 모듈에서 가져와야 함
a = [1,2,3,4,5]
from functools import reduce
reduce(lambda x,y: x+y, a)