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]을 기준으로 오름차순 정렬한다.