본문 바로가기
  • AI 개발자가 될래요
Python

[Python] 람다식(lambda) 사용법, 사용할 위치: filter(), sorted()

by 꿀개 2024. 1. 16.

파이썬 람다식(lambda) 사용법 / 람다식을 사용할 위치: filter(), sorted() 

 

파이썬에서 람다(lambda)식을 이용하면 1행짜리 이름 없는 함수를 만들 수 있다.

함수가 필요할 때 그 즉시 정의할 수 있다는 장점이 있지만, 가독성이 떨어지는 단점이 있다.

 

람다식 정의법

 

:을 이용해 입력과 출력을 정의한다.

입력값에 1을 더해 반환하는 함수는 아래처럼 쓸 수 있다.

 

입력값에 1을 더해 반환하는 람다식

 

람다식을 이용하여 정의된 increment 함수에 1을 넣으면 2를 반환한다.

 

람다식을 사용할 위치, filter(), sorted()

 

람다식을 무분별하게 이용하면 가독성이 매우 떨어진다.

그래서 적합한 상황에 사용해야 하는데, 주로 함수를 인수로 받는 함수를 호출할 때이다.

 

예를 들어, 내장 함수 filter()의 첫 번째 인수나, sorted()의 인수 key 등이 있다.

 

filter()에 람다식 사용 예시

 

str이 저장된 리스트 nums를 정의하고

이 리스트에서 원소의 길이가 3인 원소만 추출하는 함수 filtered를 정의하였다.

 

filter()에 람다식 사용 예시

 

함수 호출 결과 길이가 3인 원소들만 출력되는 것을 볼 수 있다.

 

참고로 filter() 함수는 반환 타입이 filter() 타입이므로, list로 변환한 뒤에 출력하도록 하자.

 

sorted()의 key 인수에 람다식 사용 예시

 

위에서 정의한 리스트 nums  이용하여 원소의 길이가 긴 순서대로 정렬한 리스트를 출력해보자.

sorted() 함수의 key 인수에 람다식을 아래와 같이 사용해주면 된다.

람다식은 원소의 길이에 -1을 곱하여 길이가 길 수록 앞으로 오도록 만들었다.

 

sorted()의  key 인수에 람다식 사용 예시

 

원소의 길이가 긴 순서대로 정렬된 것을 볼 수 있다.