Coding/Python Matlab

파이썬 - lambda

smores 2012. 1. 27. 05:24
다른 언어에서의 lambda에 대해서는 아는 바 없고...

Python에서의 lambda에 대해 조금 더 이해하고자 여기저기 뒤진 결과를 이곳에 정리함.

대략 이해한 바로는 def ... 로 정의하는 함수와 같은 일을 하되 함수로 별도로 정의하기보다는 일회성으로 사용할 경우 유용한 방법임.

lambda 변수들 : 변수들을 이용한 expression

예를 들어

g = lambda x : x**2 



def g(x):
    return x**2


와 동일한 역할 


filter(), map(), reduce() 등과 함께 사용하는 사례들 

http://www.secnetix.de/olli/Python/lambda_functions.hawk
 



다음의 사이트에서는 어떤 경우에 lambda 사용이 더 적절한가와 왜 python lambda가 조금 헷갈리는가에 대한 논의가 잘 정리되어 있다.

http://pythonconquerstheuniverse.wordpress.com/2011/08/29/lambda_tutorial/ 
 
위의 글에서 언급한 lambda의 사용 형식은, lambda 안에 들어가는 것은 single expression, expression은 어떤 값을 반환하는 것, conditional if 문 (2.5 이후) 역시 가능

lambda: a if some_condition() else b
lambda x: ‘big’ if x > 100 else ‘small’