<기준>
class Solution:
def reorderLogFiles(self, logs: List[str]) -> List[str]:
letters, digits = [], []
#숫자는 digits에 문자면 letters에
for log in logs:
if log.split()[1].isdigit():
digits.append(log)
else: letters.append(log)
#람다 표현식으로 2개의 키를 정렬
letters.sort(key=lambda x: (x.split()[1:], x.split()[0]))
return letters + digits
식별자 없이 실행 가능한 함수, 함수 선언 없이도 하나의 식으로 함수를 단순하게 표현할 수 있다.
위 예제에서는 문자 순 정렬을 원하며, 문자가 동일한 경우에만 그 앞번호순으로 정렬되는 형태를 희망한다. 이 때 리스트의 가가 요소를 풀어서 별도 처리를 해줘야하는데, 이럴 때 람다 표현식을 사용할 수 있다.
>>> def func(x):
return x.split()[1], x.split()[0]
>>> s.sort(key=func)
>>> s
letters.sort(key=lambda x: (x.split()[1:], x.split()[0]))
(https://wayhome25.github.io/python/2017/03/07/key-function/)