Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬(Python)에서 딕셔너리를 정렬하는 방법 완벽 가이드


딕셔너리(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 옵션을 추가하기만 하면 됩니다. 이처럼 파이썬의 내장 함수를 활용하면 딕셔너리 정렬을 간단하게 처리할 수 있습니다.