[Python] 두 개의 키를 람다 표현식으로 정렬

람다 표현식

람다 표현식이란 식별자 없이 실행 가능한 함수를 말하며, 함수 선언 없이도 하나의 식을 단순하게 표현할 수 있다.

두 개의 키를 람다 표현식으로 정렬

s = ["2 A", "1 B", "4 C", "1 A"]

print(sorted(s)) # ['1 A', '1 B', '2 A', '4 C']

위의 처럼 정렬을 하게 된다면 앞에 있는 숫자를 기준으로 정렬이 된다. 이를 뒤에 있는 문자를 기준으로 정렬을 하려면 다음과 같이 하면 된다.

def func(x):
    return x.split()[1], x.split()[0]

s.sort(key=func)
print(s) # ['1 A', '2 A', '1 B', '4 C']

람다 표현식을 사용하면 별도의 함수를 선언하지 않고 간단히 처리할 수 있다.

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

좋은 웹페이지 즐겨찾기