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
여러분은 어떠한 방법으로 작성하시길 원하나요?
저는 전자를 선택하겠습니다.