python에서 리스트를 정렬할 때,
lambda
식을 활용할 수도 있지만,
복잡한 조건으로 정렬해야 하는 경우, 별도의 함수를 사용하는 것이 편리하다.
cmp_to_key
모듈을 활용하여, 커스텀 조건으로 리스트를 정렬하는 방법을 알아보자.
리턴값은 항상 1,-1,0 이여야 한다.
from functools import cmp_to_key
def comparator(a,b):
if [정렬기준대로 앞으로 가는 조건]:
return 1
elif [정렬기준 반대로 뒤로 가는 조건]:
return -1
else [정렬기준에 해당되지 않는 조건]:
return 0
오름/내림차순에 따라 reverse
인수를 지정해주면 된다.
sorted_num = sorted(numbers, key=cmp_to_key(comparator), reverse=True)