본문 바로가기
컴퓨터관련 쪽지

python list sorted 사용 시 내 마음대로 우선 순위 정하기

by 프들이 2021. 3. 30.
반응형

기본적으로 python sort 에 대한 문서는 아래를 참고한다.

docs.python.org/ko/3/howto/sorting.html

 

정렬 HOW TO — Python 3.9.2 문서

정렬 HOW TO 저자 Andrew Dalke와 Raymond Hettinger 배포 0.1 파이썬 리스트에는 리스트를 제자리에서(in-place) 수정하는 내장 list.sort() 메서드가 있습니다. 또한, 이터러블로부터 새로운 정렬된 리스트를 만

docs.python.org

이 글에서는 내가 원하는 우선순위를 가지고 python list 를 정렬하는 방법을 설명한다.

알아야 할 것은 sorted() 함수와 key 아규먼트이다.

해결하고자 하는 상황:

다음과 같은 list 가 있다.

mylist = [("a",1), ("b", -1), ("c", 3)]

 여기서 내가 얻고 싶은 것은 "b" 가 가장 먼저 나오고 그다음 "c" 가 나오고 마지막으로 "a" 가 나오게 하고 싶다.

해결 법:

이럴 경우 아래와 같이 한다.

my_priority = {"a": 2, "b": 0, "c": 1}
mylist = sorted(mylist, key=(lambda tup: my_priority[tup[0]]))

위와 같이 하면 내가 준 우선순위에 따른 mylist 에 대한 정렬이 가능해 진다.

설명:

key 에 넘어간 숫자의 순서대로 sorted 는 리스트를 정렬하여 반환한다. 따라서 내가 원하는 문자열의 값에 우선순위를 숫자로 주면 그 값에 따라서 정렬이 이루어진다.

 

반응형

댓글