사전은 키와 값 쌍으로 구성된 데이터 구조입니다. 두 가지 기준을 사용하여 사전을 정렬할 수 있습니다 -
키로 정렬 − 사전은 키의 오름차순으로 정렬됩니다. 값은 처리되지 않습니다.
값별 정렬 − 사전은 값의 오름차순으로 정렬됩니다.
방법 1 - 키로 사전 정렬
이 접근 방식에서 사전은 키의 오름차순으로 정렬됩니다.
입력:
{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의 모든 키가 정렬된 순서로 있습니다. 키만 있고 키 값 쌍은 없습니다. sorted(dic)에는 [1,2,3,5,8]
이 있습니다. -
각 키에 대해 정렬된 순서로 키와 해당 값을 dic2에 추가합니다.
-
dic2에는 키의 정렬된 순서로 모든 키-값 쌍이 있습니다.
방법 2 - 값으로 사전 정렬
이 접근 방식에서 사전은 값의 오름차순으로 정렬됩니다.
입력:
{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]은 람다 함수를 사용하는 정렬 메커니즘입니다.
-
이것은 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}