Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 사전을 정렬하는 방법은 무엇입니까?

<시간/>

사전은 키와 값 쌍으로 구성된 데이터 구조입니다. 두 가지 기준을 사용하여 사전을 정렬할 수 있습니다 -

키로 정렬 − 사전은 키의 오름차순으로 정렬됩니다. 값은 처리되지 않습니다.

값별 정렬 − 사전은 값의 오름차순으로 정렬됩니다.

방법 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}