Python

[Python] Lambda

UnoCode 2020. 6. 27. 20:27

람다란?

람다는 인라인 함수를 정의할 때 사용되며 익명 함수 또는 람다 표현식 이라고 부릅니다.

 

일반 함수 표현식

def name(arg1, arg2 ...):
    block of statement
def add(num1,num2):
	return num1 + num2
    
print(add(1,2)

# 결과 3

 

람다와 일반 함수의 차이점

1. 이름의 유무

2. 함수 내부에서 처리하는 로직이 block형식이냐 inline 형식이냐

 

람다의 표현식

 

lambda argument1, argument2, ... argumentN : expression using arguments
f = lambda num1,num2 : num1+num2

print(f(1,2)) # 결과 3

 

람다는 언제 유용하게 사용할 수 있을까요..

간단한 콜백함수를 만들거나 함수안에서 복잡한 처리를 할 수 없을 때 유용합니다.

 

콜백함수는 어떤 이벤트가 발생했을때 호출되는 함수입니다.

 

다음과 같이 2제콥 3제콥 4제콥을 하는 예제에서 함수로 구현하는 것보다 람다로 구현 하는게 좋겠죠??

 

Lambdas = [
    lambda x : x ** 2,
    lambda x : x ** 3,
    lambda x : x ** 4
]

for lambda_func in Lambdas:
    print( lambda_func(2) )

결과

4

8

16

 

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

 

여러분은 어떠한 방법으로 작성하시길 원하나요?

 

저는 전자를 선택하겠습니다.