반응형
앞서서 python list를 내 원하는 우선순위로 정렬하기 위한 방법을 살펴보았다.
2021.03.30 - [컴퓨터관련 쪽지] - python list sorted 사용 시 내 마음대로 우선순위 정하기
이번에는 내가 원하는 정렬을 하는데 두가지 이상의 기준으로 정렬하는 방법을 알아보겠다.
위 메뉴얼에 보면 이미 있는 내용이다. 매뉴얼에서는 이 성질을 정렬 안정성이라고 부르고 있다.
정렬 안정성
이 말은 한 번 정렬된 리스트의 순서는 유지가 된다는 뜻이다.
예제를 보자
tar_list = [('서울', '목동', 30), ('서울', '신정동', 15), ('경기', '수원', 10), ('경기', '영통', 5)]
## 다중 기준으로 정렬할 때는 하위 우선순위부터 먼저 정렬을 한다.
## 위 예에서는 1순위 정렬기준: 시도, 2순위 정렬기준: 읍면동, 3순위 정렬기준: 숫자
## 우선순위의 역순인 숫자, 읍면동, 시도 순으로 정렬한다.
tar_list = sorted(tar_list, key=lambda x: x[2])
print(tar_list)
[('경기', '영통', 5), ('경기', '수원', 10), ('서울', '신정동', 15), ('서울', '목동', 30)]
tar_list = sorted(tar_list, key=lambda x: x[1])
print(tar_list)
[('서울', '목동', 30), ('경기', '수원', 10), ('서울', '신정동', 15), ('경기', '영통', 5)]
tar_list = sorted(tar_list, key=lambda x: x[0])
print(tar_list)
[('경기', '수원', 10), ('경기', '영통', 5), ('서울', '목동', 30), ('서울', '신정동', 15)]
위 예에서처럼 우선순위가 낮은 정렬 기준부터 사용해서 거꾸로 올라가면서 정렬하면 원하는 다중 기준으로 정렬하는 것이 구현이 된다.
왜냐하면 정렬 안정성이 있기 때문에 한번 정렬 된 것은 그 순서를 유지하고 있기 때문에 처음 정렬한 기준은 마지막까지 유지가 되는 것이다.
끝.
반응형
'컴퓨터관련 쪽지' 카테고리의 다른 글
[Azure Function] HttpTrigger interface 연습 (Serverless computing) python (0) | 2021.08.26 |
---|---|
[MS Azure CLI] 구독 확인 및 변경/전환 (changing subscription) (0) | 2021.08.25 |
[python] max() 를 이용해 dictionary 에서 value 의 최대값을 가지는 key 를 뽑아보자 (0) | 2021.04.01 |
python list sorted 사용 시 내 마음대로 우선 순위 정하기 (0) | 2021.03.30 |
pytest 에서 code coverage 사용: 얼만큼 코드에 대해서 테스트를 하는가 확인. (0) | 2021.03.25 |
댓글