반응형
[Python] sorted() 다중조건으로 정렬하는 방법
2018 KAKAO BLIND RECRUITMENT
- [3차] 방금그곡 문제에 정렬을 해야 하는 부분이 있는데, sorted
함수 안에서 itemgetter
를 사용하여 해결하려했습니다. 그러나 원하는대로 작동하지 않아, 결국 itemgetter
를 쓰지 않고 다른 방법으로 해당 코드를 변경하여 풀었습니다. 이 기회에 sorted()
함수를 간략하게 정리하려 합니다.
-
예제
>>> a = [(1,3), (0,3), (1,4), (1,5), (0,1), (2,4)] >>> b = sorted(e, key=lambda x: x[0]) >>> b [(0, 3), (0, 1), (1, 3), (1, 4), (1, 5), (2, 4)] # 기본 동작은 오름차순 >>> c = sorted(e, key=lambda x: x[1]) >>> c [(0, 1), (1, 3), (0, 3), (1, 4), (2, 4), (1, 5)] # - 붙일 경우 내림차순 >>> c = sorted(e, key=lambda x: -x[1]) >>> c [(1, 5), (1, 4), (2, 4), (1, 3), (0, 3), (0, 1)] # 다중 조건 예제 # 첫번째 요소로 오름차순을 진행한 다음, 그 결과를 가지고 내림차순을 진행한다. 다시 말해, 첫번째 요소가 먼저 정렬이 되어 고정되고, 그 뒤에 (1, 3), (1, 4), (1, 5) 등의 요소들이 두 번째 요소를 기준으로 정렬된다. >>> d = sorted(e, key=lambda x: (x[0], -x[1])) >>> d [(0, 3), (0, 1), (1, 5), (1, 4), (1, 3), (2, 4)]
반응형
'프로그래밍 언어 > Python' 카테고리의 다른 글
[Python] permutations & combinations (순열과 조합) (0) | 2021.02.02 |
---|---|
[Python] 문자열로 된 수식을 계산하는 eval 함수 (0) | 2021.02.01 |
[Python] 2차원 리스트 90도 회전 (0) | 2021.01.31 |
[Python] deque 사용법 (0) | 2021.01.11 |
[Python] 폴더를 파이썬 모듈로 만들기 (0) | 2018.12.31 |