입력
logs = ["dig1 8 1 5 1", "let1 art can", "dig2 3 6", "let2 own kit dig", "let3 art zero"]
출력
["let1 art can", "let3 art zero", "let2 own kit dig", "dig1 8 1 5 1", "dig2 3 6"]
def reorderLogFiles(self, logs: List[str]) -> List[str]:
# 문자 로그인지, 숫자 로그인지 판별
letters, digits = [], []
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
letters.sort(key=lambda x: (선순위, 후순위))
로 정렬해준다.람다 표현식
식별자 없이 실행 가능한 함수. 함수 선언 없이도 하나의 식으로 함수를 간단히 표현할 수 있다.
하지만 훨씬 간결하고 가독성이 높은 리스트 컴프리헨션(List Comprehension)을 주로 사용한다.
꼭 필요한 경우와 더 편리할 경우에 한해 람다 표현식을 사용한다.# 람다 표현식 s.sort(key=lambda x: (x.split()[1], x.split()[0]))
# 직접 함수 선언 def func(x): return x.split()[1], x.split()[0] s.sort(key=func)