파이썬 딕셔너리 정렬

LiiNi·2024년 2월 25일

딕셔너리 순서 정책... 하지만

파이썬 3.6부턴 dict가 순서를 보장한다고 하나, 모든 방식에서의 순서가 보장되는 것은 아니다.
그래서 dict는 순서를 보장하지 않는다고 상정해서 코딩하자!

그렇다면 dict의 원소들을 정렬하려면 어떻게 할까?

딕셔너리 정렬 방법

딕셔너리 자체 내부에서 정렬할 생각하지말고, sorted함수를 이용해 튜플원소인 리스트를 반환하여 이를 사용하자

#key기준 오름차순 정렬
sorted( dic.items() )

sorted 함수에 정렬 대상을 넣어야하는데, listable한 객체를 넣어야한다. dic의 원소를 listable한 객체로 래핑해주는 items()함수를 쓰면된다.

만약, 내림차순을 원해서 key=lambda에 반환에 -를 붙이면 가능할때도 있지만 아래 그림과 같은 에러가 날수 있다.

딕셔너리의 value가 객체이고, 객체내부의 데이터기준으로 딕셔너리 정렬하고 싶으면?

위 그림 참고하자.

데이터를 내림차순 정렬하고싶으면 reverse옵션을 활용하자!

웬만하면 sort, sorted의 옵션인 reverse=True 를 사용하자.

profile
보안을 겸비하고픈 풀스택개발자

0개의 댓글