새소식

Programming Language/Python

[Python] 람다(lambda)함수란

  • -

람다 함수란?

람다(lambda) 함수는익명 함수(anonymous function)라고도 부르며, 한 줄짜리 함수를 정의하거나, 함수(ex- sorted() ,filter(),map()등) 를 인자로 전달해야 하는 경우에 매우 유용하게 사용 됩니다.

 

def 키워드를 사용한 일반 함수와 달리, lambda키워드를 사용하여 정의합니다.

람다 함수는 다음과 같은 형태로 정의됩니다.

lambda 인자 : 표현식

 

람다(lambda) 함수의 활용 예제

 

1. map() 함수와 함께 사용

map() 함수는 시퀀스(리스트, 튜플 등)의 모든 요소에 함수를 적용한 결과를 반환합니다.

이 때, map() 함수와 함께 람다 함수를 사용할 수 있습니다. 

 

예시) [1,2,3,4,5] -> [2,4,6,8,10]

lst = [1, 2, 3, 4, 5]

이 리스트의 각 요소에 2를 곱하고자 한다면 다음과 같이 map() 함수와 람다 함수를 사용할 수 있습니다.

new_lst = list(map(lambda x: x * 2, lst))
print(new_lst)

위 코드는 map() 함수와 람다 함수를 사용하여 리스트의 각 요소에 2를 곱한 결과를 new_lst 리스트에 저장합니다.

 

출력 결과는 다음과 같습니다.

[2, 4, 6, 8, 10]

 

 

2. filter() 함수와 함께 사용

 

filter() 함수는 시퀀스(리스트, 튜플 등)의 모든 요소 중에서 조건에 맞는 요소만을 반환합니다.

이 때, filter() 함수와 함께 람다 함수를 사용할 수 있습니다. 

 

예시) [1,2,3,4,5] -> [1,3,5] #홀수만 반환

lst = [1, 2, 3, 4, 5]

이 리스트에서 홀수만 추출하고 싶다면, 다음과 같이 filter() 함수와 람다 함수를 사용하여 홀수만을 추출할 수 있습니다.

new_lst = list(filter(lambda x: x % 2 == 1, lst))
print(new_lst)

위 코드는 filter() 함수와 람다 함수를 사용하여 리스트의 요소 중에서 홀수만을 추출하여 new_lst 리스트에 저장합니다.

 

출력 결과는 다음과 같습니다.

[1, 3, 5]

 

 

3. sorted() 함수와 함께 사용

 

sorted() 함수는 시퀀스(리스트, 튜플 등)의 요소를 정렬한 결과를 반환합니다. 이 때, sorted() 함수와 함께 람다 함수를 사용하여 정렬 기준을 지정할 수 있습니다.

 

예시) 리스트를 길이 순으로 정렬

lst = ['Amy', 'Babo', 'ChoiYujin']

 

new_lst = sorted(lst, key=lambda x: len(x))
print(new_lst)

위 코드는 sorted() 함수와 람다 함수를 사용하여 리스트의 요소를 길이 순으로 정렬한 결과를 new_lst 리스트에 저장합니다. 이 때, sort함수의 첫 번째 인자로 리스트가 오고, 두 번째 인자로 key가 옵니다

 

출력 결과는 다음과 같습니다.

 ['ChoiYujin', 'Babo', 'Amy']

 

 

결론

위 예제를 통해 Python에서 람다 함수가 어떻게 사용되는지에 대해 살펴보았습니다. 

 

람다(lambda) 함수는 다음 두 가지 경우에서 자주 쓰인다는 점 기억합시다

  • 한 줄짜리 함수를 정의할 때
  • sorted() ,filter(),map()등 함수를 인자로 전달해야 하는 경우
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.