대량의 데이터를 처리할때, 배열 데이터나 여러가지로 불러 올때
성능적으로 잘 만들어놓기 때문에, 가독성과 속도를 이득을 볼 수 있었습니다.
# ex1
cul = lambda a, b, c: a * b + c
print(cul(10, 15, 20))
170
# ex2
digits1 = [x * 10 for x in range(1, 11)]
print(digits1)
result = list(map(lambda i: i ** 2, digits1))
print(result)
# if 람다 없으면
def ex2_func(x):
return x ** 2
result = list(map(lambda i: i ** 2, digits1))
print(result)
def also_square(nums):
def double(x):
return x ** 2
return map(double, nums)
print(list(also_square(digits1)))
[100, 400, 900, 1600, 2500, 3600, 4900, 6400, 8100, 10000]
그러나 람다가 없으면 ex2_func 함수가 메모리에 저장되어서 가비지 컬렉터에 없어지지 않는다
# ex3
digits2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
result = list(filter(lambda x: x % 2 == 0, digits2))
print(result)
def also_evens(nums):
def is_event(x):
return x % 2 == 0
return filter(is_event, nums)
print(list(also_evens(digits2)))
[2, 4, 6, 8, 10]
필터로 yes or no를 잘 구해내는 부분이다.