# 기본 구조
lambda 인자 : 표현식
# 기본 구조 예시
(lambda a,b : a + b)(1,2) # 3
mylambda = lambda a : a**2
print(mylambda(2)) # 4
mylambda2 = lambda a,b: a*b
print(mylambda2(2,3)) # 6
1. 람다 표현식을 반환하는 함수식에서의 사용
def func(x):
return lambda y : x + y
a = func(1)
print(a(2)) # 3
b = func(3)
print(b(4)) # 7
print(func(1)(2)) # 3
2. 람다 표현식 안에서의 조건문 사용
print((lambda a : "even" if a%2 == 0 else "odd")(5)) # "odd"
mylambda = lambda a : "even" if a%2 == 0 else "odd"
print(mylambda(4)) # "even"
3. 매개변수가 없는 람다 표현식
(lambda : 1)() # 1
x = 1
print((lambda : x)()) # 1
myList1 = [1, 2 ,3, 4, 5]
myList2 = [6, 7, 8, 9, 10]
# 함수 정의 및 map 함수 사용하는 경우
def func(a, b):
return a+b
list(map(func, myList1, myList2)) # [7, 9, 11, 13, 15]
# 함수 정의 없이 lambda 표현식 & map 함수 사용
list(map(lambda a,b : a+b, myList1, myList2)) # [7, 9, 11, 13, 15]
filter(function, iterable)
# 예시
myList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
list(filter(lambda x: x%2 == 0, myList)) # [2, 4, 6, 8, 10]
# filter() 가 아닌 map() 함수를 사용한다면?
(list(map(lambda x: x%2 == 0, myList)))
#[False, True, False, True, False, True, False, True, False, True]
# boolean 값 반환한다.