람다 표현식

람다 표현식이란 식별자 없이 실행 가능한 함수를 말하며, 함수 선언 없이도 하나의 식으로 함수를 단순하게 표현할 수 있습니다. 리스트 컴프리헨션과 비슷한 용도라고 볼 수 있겠습니다.



사용 예시

참고 문항

(Python) 937 Reorder Data in Log Files


s가 다음과 같다고 해보겠습니다.
s = ['2 A', '1 B', '4 C', '1 A']

먼저 디폴트 정렬을 한 결과를 보겠습니다.
sorted(s)
>>> ['1 A', '1 B', '2 A', '4 C']

이 경우에는 앞 숫자가 먼저 반영되고, 그 뒤 문자가 순서에 반영된 것을 볼 수 있습니다.

각 요소의 번호 순 정렬이 아니라, 그 뒤의 문자 순으로 정렬을 하고 문자가 동일한 경우에만 앞 번호순으로 정렬을 하려면, 아래처럼 람다를 사용할 수 있습니다.

s.sort(key=lambda x: (x.split()[1], x.split()[0])
s
>>> ['1 A', '2 A', '1 B', '4 C']

이처럼 람다 표현식은, 리스트의 각 요소를 풀어서 별도 처리를 해주지 않고도 간단한 함수처럼 사용할 수 있습니다. 다만 코드가 길어지고, map이나 filter와 함께 섞어서 사용하기 시작하면 가독성이 매우 떨어질 수 있으므로 주의가 필요합니다.