일반적으로 함수는 아래와 같이 정의한다.
def myfunction(arguments):
process(arguments)
return result
labmda fuction, expression은 단일문으로 표한하는 익명 함수(anonymous function)이다.
lambda function을 이용하면 위의 myfunction함수를 아래와 같이 표현할 수 있다. (process는 실제 함수가 아니고 arguments를 처리하는 과정의 추상적인 표현으로써 작성하였습니다.)
lambda arguments: process(arguments)
함수를 정의하여 사용하는 것보다 labmda 함수를 이용하면 좀 더 간결하다는 장점을 가진다. 일반적으로 map, filter, reduce와 같은 함수와 많이 사용되는 것 같다.
필자는 아래와 같이 sorted 함수와 같이 사용하여 정렬의 기준을 만드는 데 사용하였다.
아래의 이미지에서는 이미지의 이름의 숫자를 이용하여 정렬할 때 사용하였다.
image_paths = glob.glob(os.path.join(set_dir, '*.JPEG'))
image_paths = sorted(image_paths, key=lambda k:int(k.split("/")[-1].split(".JPEG")[0]))