반응형
기본적으로 python sort 에 대한 문서는 아래를 참고한다.
docs.python.org/ko/3/howto/sorting.html
이 글에서는 내가 원하는 우선순위를 가지고 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 는 리스트를 정렬하여 반환한다. 따라서 내가 원하는 문자열의 값에 우선순위를 숫자로 주면 그 값에 따라서 정렬이 이루어진다.
반응형
'컴퓨터관련 쪽지' 카테고리의 다른 글
[python] 두가지 기준으로 list 정렬하기 (0) | 2021.04.01 |
---|---|
[python] max() 를 이용해 dictionary 에서 value 의 최대값을 가지는 key 를 뽑아보자 (0) | 2021.04.01 |
pytest 에서 code coverage 사용: 얼만큼 코드에 대해서 테스트를 하는가 확인. (0) | 2021.03.25 |
pytest 사용시 PYTHONPATH=. 설정 방법 (0) | 2021.03.25 |
vscode 에서 pylint 사용 (0) | 2021.03.24 |
댓글