딕셔너리(Dictionary)는 키(Key)와 값(Value) 쌍으로 구성되는 파이썬의 대표적인 데이터 구조입니다. 딕셔너리는 크게 두 가지 기준으로 정렬할 수 있습니다.
키를 기준으로 정렬 − 딕셔너리의 키를 오름차순으로 정렬하며, 이때 값은 고려하지 않습니다.
값을 기준으로 정렬 − 딕셔너리의 값을 오름차순으로 정렬합니다.
방법 1: 키(Key)를 기준으로 딕셔너리 정렬하기
이 방법은 딕셔너리의 키를 오름차순으로 정렬하는 방식입니다.
입력:
{2:90, 1: 100, 8: 3, 5: 67, 3: 5}출력:
{1:100, 2:90, 3:5, 5:67, 8:3}위 결과에서 확인할 수 있듯이, 딕셔너리가 키를 기준으로 오름차순 정렬된 것을 볼 수 있습니다.
예제 코드
dic={2:90, 1: 100, 8: 3, 5: 67, 3: 5}
dic2={}
for i in sorted(dic):
dic2[i]=dic[i]
print(dic2)실행 결과
{1: 100, 2: 90, 3: 5, 5: 67, 8: 3}코드 단계별 설명
정렬하고자 하는 딕셔너리를 선언합니다.
정렬된 키-값 쌍을 담을 빈 딕셔너리를 하나 더 선언합니다.
sorted(dic)은 dic의 모든 키를 정렬된 순서로 반환합니다. 이때 반환되는 것은 키-값 쌍이 아닌 키만 포함되며,[1, 2, 3, 5, 8]과 같은 리스트가 됩니다.정렬된 순서대로 각 키를 순회하면서 해당 키와 그에 대응하는 값을 새로운 딕셔너리(dic2)에 추가합니다.
결과적으로 dic2에는 키가 오름차순으로 정렬된 상태의 모든 키-값 쌍이 저장됩니다.
방법 2: 값(Value)을 기준으로 딕셔너리 정렬하기
이 방법은 딕셔너리의 값을 오름차순으로 정렬하는 방식입니다.
입력:
{2:90, 1: 100, 8: 3, 5: 67, 3: 5}출력:
{8:3, 3:5 ,5:67 , 2:90, 1:100}위 결과에서 확인할 수 있듯이, 딕셔너리가 값을 기준으로 오름차순 정렬된 것을 볼 수 있습니다.
sorted()함수와items()메서드를 함께 사용하여 딕셔너리를 값 기준으로 정렬합니다.items()메서드는 딕셔너리의 키-값 쌍(아이템)들을 가져오는 역할을 합니다.key=lambda x: x[1]은 람다(lambda) 함수를 활용한 정렬 기준으로, 각 항목의 두 번째 요소인 값(Value)을 기준으로 삼습니다.정렬된 키-값 쌍들은 최종적으로
dict()함수를 통해 다시 딕셔너리 형태로 변환됩니다.
예제 코드
dic={2:90, 1: 100, 8: 3, 5: 67, 3: 5}
dic2=dict(sorted(dic.items(),key= lambda x:x[1]))
print(dic2)실행 결과
{8: 3, 3: 5, 5: 67, 2: 90, 1: 100}참고로 내림차순으로 정렬하고 싶다면 sorted() 함수에 reverse=True 옵션을 추가하기만 하면 됩니다. 이처럼 파이썬의 내장 함수를 활용하면 딕셔너리 정렬을 간단하게 처리할 수 있습니다.