알고리즘
람다 표현식
bright_code
2020. 10. 5. 14:08
728x90
반응형
1. 개념
식별자 없이 실행 가능한 일회성 함수.
def 의 함수 선언 없이도 하나의 식으로 함수를 단순하게 표현할 수 있음.
2. 사용 예시
1) 리스트 정렬 시, key 값으로 전달 // 정렬의 우선 순위를 부여하는 경우에 사용하면 매우 편리
s = [ ( 'A', 1 ) , ( 'Z', 2 ) , ( 'N', 9 ) , ( 'B', 3 ), ( 'H', 3 ) ] 을 숫자 기준 내림차순 , 문자 기준 오름차순으로 정렬하시오.
s.sort( key = lambda x: ( -x[1], x[0] ) )
결과 : [('N', 9), ('B', 3), ('H', 3), ('Z', 2), ('A', 1)]
문자 순으로 정렬하되, 문자가 동일한 경우에는 식별자 순으로 나열하라.
logs = ["let1 art ","let2 own","let3 art", "let4 cat", "let5 book"]
logs.sort( key = lambda x: ( x.split()[1:] , x.split()[0] ) )
결과 : ['let1 art ', 'let3 art', 'let5 book', 'let4 cat', 'let2 own']
3. 주의 사항
map, filter 등과 함께 사용하면 가독성이 매우 떨어질 수 있으므로 주의해서 사용한다.
또한, 꼭 필요한 경우가 아닐 때는 람다 표현식 보다는 리스트 컴프리핸션이 더 많이 사용된다.
728x90
반응형