Python/basic

익명 함수, 람다 함수, python

still..epochs 2022. 12. 21. 22:19

* 본 포스팅은 '파이썬 라이브러리를 활용한 데이터 분석' 을 참조하여 작성되었습니다.

 

 

 

파이썬은 익명(anonymous)함수 혹은 람다(lambda)함수라고 하는 값을 반환하는 단순한 한 문장으로 이루어진 함수를 지원한다. lambda 예약어로 정의하며, 이는 '익명 함수를 선언한다'라는 의미이다.

 

def shor_function(x):
    return x * 2

equiv_anon = lambda x: x * 2

람다 함수는 데이터 분석에서 특히 편리한데, 이는 데이터를 변형하는 함수에서 인자로 함수를 받아야 하는 경우가 매우 많이 때문이다. 

 

즉, 람다 함수를 사용하면 실제 함수를 선언하거나 람다 함수를 지역 변수에 대입하는 것보다 코드를 적게 쓰고 더 간결해지기 때문이다. 

 

def apply_to_list(some_list, f):
    return [f(x) for x in some_list]

ints = [4, 0, 1, 5, 6]
apply_to_list(ints, lambda x: x * 2)

 

물론 [ x * 2 for x in ints]라고 해도 되지만 이렇게 하면 apply_to_list 함수에 사용한 연산을 간결하게 전달할 수 있다.

 

다른 예제로, 다음 문자열 리스트를 각 문자열에서 다양한 문자가 포함된 순서로 정렬한다고 가정하자.

strings = ['foo', 'card', 'bar', 'aaaa', 'abab']

 

리스트의 sort 메서드에 람다 함수를 넘겨 다음과 같이 정렬할 수 있다.

strings.sort(key = lambda x: len(set(list(x))))
strings

>> ['aaaa', 'foo', 'abab', 'bar', 'card']

 

'Python > basic' 카테고리의 다른 글

python, 네임스페이스, 스코프, 지역 함수  (0) 2022.12.21