본문 바로가기
Language/Python

[Python] 람다식, lambda로 sorted key 정하기

by 카프리썬 2021. 5. 25.
728x90

Lambda 함수

 

이름없는 함수, 람다표현식을 익명함수(anonymous function)

함수를 따로 선언하지 않고, lamba식으로 대체함 

 

출처 https://wikidocs.net/22804

예를 들어 매개변수 x에 10을더한 값을 반환하는 함수를 만든다고 하면 

 

사용법

이렇게 할텐데 이렇게 간단한 식일때는 lambda함수로 코드를 한줄로 줄일 수 있따.

이렇게 간단하게 표현하면 뭐가 좋은가? 

코드가 간단해질 뿐만 아니라 메모리를 덜 잡아먹는다. 

원래 함수를 선언하면 그 함수자체를 메모리에 할당하는데

lambda함수를 쓰면 한번만 사용하고 사라지기 때문에 메모리를 효율적으로 쓸 수 있다.

 

 

응용

람다를 언제 사용하면 될까?

 

내가 자주 본 것은 sorted()함수를 사용할 때이다.

정렬하는 기준을 잡을때 lambda를 가지고 변형한 값 만든 후, 이 값을 기준으로 잡는 것이다.

 

  • 오름차순 정렬 : sorted(a,key=lambda x:x[0])
  • 내림차순 정렬 : sorted(a,key=lambda x:-x[0])

예를 들어 list를 그냥 sorted로 정렬하면, 리스트아이템의 요소들을 순서대로 정렬한다.

이와 마찬가지로 정렬하는 key를 튜플의 첫번째 값으로 지정할 수 있다

 

그렇다면 key를 튜플의 두번째 값으로 지정하고 싶다면?

튜플의 두번쨰값 0,1,1,2,2, 순서대로 정렬이 되었다.


참고 

참고한 블로그 링크

https://velog.io/@aonee/Python-%EC%A0%95%EB%A0%AC-sort-sorted-reverse

반응형