본문 바로가기

[Python] 딕셔너리 정렬 및 출력하기

곰곰킴 2021. 5. 4.

 

개요

 

딕셔너리 정렬에는

 

1. key 기준 정렬

 

2. value 기준 정렬

 

이 있다. 상황에 따라 맞게 사용한다.

 

 

 

key 기준 정렬

 

오름차순

 

sorted 함수를 사용하면 된다.

 

sorted에 딕셔너리를 넣었을 때는 딕셔너리의 key 기준으로 정렬하는 것이 default,

 

오름차순이 default 기 때문에 dict의 item만 넣으면 된다.

 

dict = sorted(dict.items())

 

내림차순

 

dict = sorted(dict.items(), reverse=True)

 

 

value 기준 정렬

 

value 기준 정렬은 key 기준 정렬 때보다 스킬이 필요하다.

 

1. lambda 활용

 

2. operator.itemgetter 활용

 

 

lambda 활용

 

dict = sorted(dict.items(), key=lambda x:x[1])

 

람다를 활용하여 x[1] 즉, 딕셔너리의 인덱스 1인 value 값을 정렬 기준으로 잡는다는 명시이다.

 

reverse 파라미터를 적용할 수 있다. (내림차순)

 

dict = sorted(dict.items(), key=lambda x:x[1], reverse=True)

 

 

operator.itemgetter 활용

 

import operator
 
dict= sorted(dict.items(), key=operator.itemgetter(1))

 

operator.itemgetter는 주로 sorted와 같은 함수의 key 파라미터에 적용되어

 

다중 수준의 정렬을 가능하게 해 준다.

 

즉, 리스트 및 배열의 특정 인덱스 기준으로 sort하게 해준다.

 

여기서는 딕셔너리의 인덱스 1인 value값을 기준으로 한다는 명시이다.

 

reverse 파라미터를 적용할 수 있다. (내림차순)

 

import operator
 
dict= sorted(dict.items(), key=operator.itemgetter(1), reverse=True)

 

 

여담

 

value 기준으로 정렬할 때 key 값만 얻는 목적이라면

 

위의 복잡한 방법 대신

 

dict= sorted(dict, key=dict.get)

 

를 이용하면 된다.

 

dict 자체를 sort 대상으로 넣고 .get 즉, value 자체를 key의 파라미터로 넣으면

 

정렬된 key 값이 리스트로 반환된다.

 

프로그래머스의 해당 문제를 풀다가 알게되었다.

 

programmers.co.kr/learn/courses/30/lessons/42889

 

코딩테스트 연습 - 실패율

실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스

programmers.co.kr

 

댓글