[python] lambda


lambda란?

재사용되지 않을 일회성 함수를 간단히 사용하고 싶을 때 사용하는 함수입니다.

의도는 그렇지만, 변수에 lambda함수를 저장하면 재사용도 가능합니다.


보통 파이썬의 함수는 다음과 같이 만듭니다.

def print_num(x, y):
    for i in range(x, y):
        print('num ', i , ' is printed')

print_num(1, 4)

# num  1  is printed
# num  2  is printed
# num  3  is printed

먼저 함수를 정의하고 사용해야하는데요,


좀더 간단히 정의한다면 다음과 같이 쓸 수 있습니다.

(lambda x, y: [print('num ', i, ' is printed') for i in range(x, y)])(1, 4)

# num  1  is printed
# num  2  is printed
# num  3  is printed

lambda 다음에 함수가 받을 변수를 적고(x, y) : 후에 로직을 적으면 됩니다.


몇가지 예를 더 보겠습니다.

ex1 = lambda x, y, z: x+y+z

print('ex1(1, 2, 3) = ', ex1(1, 2, 3))

# ex1(1, 2, 3) =  6
ex2 = lambda: print('print ex2')

ex2()

# print ex2