Python 사용법들

파이썬 sort()에서 람다/lambda 함수로 key 값 주기

jhk828 2020. 9. 12. 19:00

람다 함수로, 파이썬 내장 함수 sort()에 정렬 key값을 줄 경우

  • lambda x: x[0]은, x[0]이 작은 숫자부터 정렬된다. 즉 reverse=False와 같다. => 오름차순
  • lambda x: -x[0]은, x[0]이 큰 숫자부터 정렬된다. 즉 reverse=True와 같다. => 내림차순
a = [[1], [5], [3], [10], [100]]
a.sort(key=lambda x:x[0])
print(a)
# [[1], [3], [5], [10], [100]]

a = [[1], [5], [3], [10], [100]]
a.sort(reverse=False)
print(a)
# [[1], [3], [5], [10], [100]]


b = [[1], [5], [3], [10], [100]]
b.sort(key=lambda x:-x[0])
print(b)
# [[100], [10], [5], [3], [1]]

b = [[1], [5], [3], [10], [100]]
b.sort(reverse=True)
print(b)
# [[100], [10], [5], [3], [1]]

 

 

이걸 이용해서 정렬 시 key값을 여러개 써서 각각 오름 차순, 내림 차순을 정의할 수 있다.

l.sort(key=lambda x:(-x[1], x[0]))
# # [(5, 4), (6, 4), (7, 4), (4, 3), (8, 3), (3, 2), (9, 2), (2, 1), (10, 1)]
# x[1]을 기준으로 내림차순 정렬 한 후, x[1]이 같을 경우에는 x[0]을 기준으로 오름차순 정렬한다.