1. lambda 란?
- 이름이 없는 함수를 뜻한다.
- 코드가 간결하고, 메모리를 절약할 수 있다는 장점이 있다.
2. lambda와 def함수의 차이점
- def 함수는 함수클래스를 통해 객체를 생성하고, 해당 객체를 함수 이름과 동일한 변수에 담는 과정을 def 키워드가 대신 해준다.
- 함수 객체를 변수에 담는 시점에서, 함수 객체는 메모리에 올라가서 변수를 통해 자신이 호출되기를 기다리는데, 단 한번만 사용될 함수일 경우 불필요한 메모리 낭비가 발생한다.
- lmabda 함수는 결과적부분에 대해 return 키워드 없이 자동으로 return을 해주고, 함수의 이름이 없다보니 1회성이나 간단한 함수를 사용할때 매우 유용하다.
3. 특징 및 사용 법
- lambda는 함수 이름을 지정하지 않는다.
- lambda에 저장된 변수가 없다.
- lambda는 정의와 동시에 변수를 담아서 연산 할 수 있다.
- 사용 예시)
target = [' cat ', ' tiger ', ' dog', 'snake ']
sorted(target, key=lambda x : len(x.strip()))