lambda argument1, argument2, ... argumentN : expression using arguments
f = lambda x,y,z : x+y+z print(f) # <function <lambda> at 0x10343e710> print(f(1,2,3))
결과값:
<function <lambda> at 0x7f8f40ed3040>
6
위의 예제를 def 함수로 정의하면 아래와 같다
def add_func(x,y,z): return x+y+z
def square(x): return x ** 2 def power_3(x): return x ** 3 def power_4(x): return x ** 4 powers = [ square, power_3, power_4 ] for f in powers: print( f(2) )
결과값을 출력해보면
4
8
16
위의 예제를 lambda로 간단하게 표현하면 아래와 같다.
LAMBDAS = [ lambda x : x ** 2, lambda x : x ** 3, lambda x : x ** 4 ] for i in LAMBDAS: print(i(2))
결과값은 동일하게
4
8
16
위의 두 예제처럼 lambda를 사용하면 가독성 좋고 간결한 코드를 작성할 수 있다.