대량의 데이터를 처리할때, 배열 데이터나 여러가지로 불러 올때


성능적으로 잘 만들어놓기 때문에, 가독성과 속도를 이득을 볼 수 있었습니다.

기초 설명

Lambda

# ex1
cul = lambda a, b, c: a * b + c

print(cul(10, 15, 20))

170

Map

# 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 함수가 메모리에 저장되어서 가비지 컬렉터에 없어지지 않는다

filter

# 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를 잘 구해내는 부분이다.