알고리즘/알고리즘 개념

[문법 / Python] 딕셔너리 정렬하기

cloud_nice 2020. 1. 15. 15:48

딕셔너리를 정렬하는 방법들을 알아보겠습니다.

딕셔너리는 리스트처럼 sort()함수를 사용할 수 없기때문에 sorted()를 이용해서 정렬해야 합니다.

 

KEY를 이용한 정렬

import operator
dict = {'A':1, 'D':4, 'C':3, 'B':2}
sort_dict = sorted(dict.items())
print(sort_dict)

이렇게 실행하게 되면 답은

>> [('A', 1), ('B', 2), ('C', 3), ('D', 4)]

이렇게 나옵니다! 키를 기준으로 정렬하되, 키와 값을 튜플로 묶어서 정렬된 값을 반환합니다.

 

 

VALUE를 이용한 정렬

dict = {'A':1, 'D':4, 'C':3, 'B':2}
sort_dict = sorted(dict.items(),key=lambda x:x[1]) #value는 [1]
print(sort_dict)

이렇게 실행하게 되면 답은

>> [('A', 1), ('B', 2), ('C', 3), ('D', 4)]

이렇게 나옵니다! 키를 기준으로 정렬하되, 키와 값을 튜플로 묶어서 정렬된 값을 반환하는데 그 값에서 x[1]을 기준으로 다시 정렬합니다.

x[1]은 각 튜플의 두번째값을 의미하는데 정수를 기준으로 정렬하라는 말과 같습니다.

 

import operator
dict = {'A':1, 'D':4, 'C':3, 'B':2}
sort_dict = sorted(dict.items(),key=operator.itemgetter(1)) #value는 itemgetter(1) 
print(sort_dict)

이 방법도 동일합니다! 여기서 operator.itemgetter(1)또한 각 튜플의 두번째값을 의미합니다.