logo

파이썬 | 키 또는 값을 기준으로 Python 사전 정렬

Python 사전에는 키와 값이라는 두 가지 요소가 있습니다. 키, 값 또는 둘 다를 기준으로 사전을 정렬할 수 있습니다. 이 기사에서는 다음을 사용하여 키 또는 값으로 사전을 정렬하는 방법에 대해 설명합니다. 파이썬 .

Python에서 사전 정렬의 필요성

데이터의 복잡성을 줄이고 쿼리를 더 빠르고 효율적으로 만들기 위해서는 데이터 정렬이 필요합니다. 많은 양의 데이터를 처리할 때 정렬은 매우 중요합니다.



다음 방법을 사용하여 사전을 값별로 정렬할 수 있습니다.

  • 먼저 다음을 사용하여 키를 알파벳순으로 정렬합니다. 핵심 가치. 반복키() 기능.
  • 둘째, 다음을 사용하여 키를 알파벳순으로 정렬합니다. 정렬됨(키_값) 함수를 실행하고 그에 해당하는 값을 인쇄합니다.
  • 셋째, 다음을 사용하여 값을 알파벳순으로 정렬합니다. 핵심 가치. 반복항목() , 키 = 람다 (k, v) : (v, k))

키 또는 값 예제를 기준으로 Python 사전 정렬

Python에서 값과 키를 기준으로 사전을 정렬하기 위해 수행해야 하는 주요 작업은 다음과 같습니다.

  1. 만들기 사전 목록 키를 알파벳순으로 표시합니다.
  2. 키와 값을 모두 키별로 알파벳순으로 정렬하여 표시합니다.
  3. 마지막으로 키와 값을 모두 값별로 알파벳순으로 정렬하여 표시합니다.

예 1: 키를 기준으로 사전 정렬

이 예에서는 사전을 키별로 정렬하고 결과 유형은 사전이 됩니다.



파이썬3






myDict>=> {>'ravi'>:>10>,>'rajnish'>:>9>,> >'sanjeev'>:>15>,>'yash'>:>2>,>'suraj'>:>32>}> myKeys>=> list>(myDict.keys())> myKeys.sort()> sorted_dict>=> {i: myDict[i]>for> i>in> myKeys}> print>(sorted_dict)>

>

>

산출

{'rajnish': 9, 'ravi': 10, 'sanjeev': 15, 'suraj': 32, 'yash': 2}>

예시 2: 정렬된 순서로 키 표시

이 예에서는 Python에서 키와 값을 기준으로 사전을 정렬하려고 합니다. 여기서 iterkeys()는 사전의 키에 대한 반복자를 반환합니다.

파이썬3


int를 문자열로 변환



단어 빠른 액세스 도구 모음

# Function calling> def> dictionary():> ># Declare hash function> >key_value>=> {}> # Initializing value> >key_value[>2>]>=> 56> >key_value[>1>]>=> 2> >key_value[>5>]>=> 12> >key_value[>4>]>=> 24> >key_value[>6>]>=> 18> >key_value[>3>]>=> 323> >print>(>'Task 1:- '>)> >print>(>'key_value'>, key_value)> ># iterkeys() returns an iterator over the> ># dictionary’s keys.> >for> i>in> sorted>(key_value.keys()):> >print>(i, end>=>' '>)> def> main():> ># function calling> >dictionary()> # Main function calling> if> __name__>=>=> '__main__'>:> >main()>

>

>

산출

Task 1:- key_value {2: 56, 1: 2, 5: 12, 4: 24, 6: 18, 3: 323} 1 2 3 4 5 6>

예시 3: 키를 기준으로 사전 정렬

이 예에서는 키 유형을 문자열로 사용하여 사전순으로 정렬합니다.

파이썬3




# Creates a sorted dictionary (sorted by key)> from> collections>import> OrderedDict> dict> => {>'ravi'>:>'10'>,>'rajnish'>:>'9'>,> >'sanjeev'>:>'15'>,>'yash'>:>'2'>,>'suraj'>:>'32'>}> dict1>=> OrderedDict(>sorted>(>dict>.items()))> print>(dict1)>

>

>

산출

OrderedDict([('rajnish', '9'), ('ravi', '10'), ('sanjeev', '15'), ('suraj', '32'), ('yash', '2')])>

예시 4: 키를 사용하여 키와 값을 알파벳순으로 정렬

이 예에서는 Python에서 키와 값을 기준으로 사전을 정렬하려고 합니다. 여기서는 Dictionary 값에 대한 반복자를 사용하여 키를 정렬합니다.

파이썬3




# function calling> def> dictionairy():> ># Declaring the hash function> >key_value>=> {}> # Initialize value> >key_value[>2>]>=> 56> >key_value[>1>]>=> 2> >key_value[>5>]>=> 12> >key_value[>4>]>=> 24> >key_value[>6>]>=> 18> >key_value[>3>]>=> 323> > >print>(>'key_value'>,key_value)> >print>(>'Task 2:- Keys and Values sorted in'>,> >'alphabetical order by the key '>)> > ># sorted(key_value) returns a sorted list> ># of the Dictionary’s keys.> >for> i>in> sorted>(key_value):> >print>((i, key_value[i]), end>=>' '>)> def> main():> ># function calling> >dictionairy()> # main function calling> if> __name__>=>=> '__main__'>:> >main()>

자바 역방향 문자열
>

>

산출

key_value {2: 56, 1: 2, 5: 12, 4: 24, 6: 18, 3: 323} Task 2:- Keys and Values sorted in alphabetical order by the key (1, 2) (2, 56) (3, 323) (4, 24) (5, 12) (6, 18)>

예시 5: 값을 사용하여 키와 값을 알파벳순으로 정렬

이 예에서는 Python에서 키와 값을 기준으로 사전을 정렬하려고 합니다. 여기서는 사전순으로 정렬하는 데 사용됩니다.

파이썬3




# Function calling> def> dictionairy():> ># Declaring hash function> >key_value>=> {}> # Initializing the value> >key_value[>2>]>=> 56> >key_value[>1>]>=> 2> >key_value[>5>]>=> 12> >key_value[>4>]>=> 24> >key_value[>6>]>=> 18> >key_value[>3>]>=> 323> > >print>(>'key_value'>,key_value)> >print>(>'Task 3:- Keys and Values sorted'>,> >'in alphabetical order by the value'>)> ># Note that it will sort in lexicographical order> ># For mathematical way, change it to float> >print>(>sorted>(key_value.items(), key>=>lambda> kv:> >(kv[>1>], kv[>0>])))> def> main():> ># function calling> >dictionairy()> # main function calling> if> __name__>=>=> '__main__'>:> >main()>

>

>

산출

key_value {2: 56, 1: 2, 5: 12, 4: 24, 6: 18, 3: 323} Task 3:- Keys and Values sorted in alphabetical order by the value [(1, 2), (5, 12), (6, 18), (4, 24), (2, 56), (3, 323)]>

이 프로그램의 시간 복잡도는 O(n log n)입니다. 여기서 n은 사전에 있는 키-값 쌍의 수입니다.

이 프로그램의 보조 공간 복잡도도 O(n)입니다. 여기서 n은 사전에 있는 키-값 쌍의 수입니다.

예 6: 값을 기준으로 사전 정렬

이 예에서는 Python에서 값을 기준으로 사전을 정렬하려고 합니다. 여기서는 사전 이해를 사용하여 값을 정렬합니다.

파이썬3


자바 연결



# Creates a sorted dictionary (sorted by key)> from> collections>import> OrderedDict> import> numpy as np> dict> => {>'ravi'>:>10>,>'rajnish'>:>9>,> >'sanjeev'>:>15>,>'yash'>:>2>,>'suraj'>:>32>}> print>(>dict>)> keys>=> list>(>dict>.keys())> values>=> list>(>dict>.values())> sorted_value_index>=> np.argsort(values)> sorted_dict>=> {keys[i]: values[i]>for> i>in> sorted_value_index}> print>(sorted_dict)>

>

>

산출:

{'ravi': 10, 'rajnish': 9, 'sanjeev': 15, 'yash': 2, 'suraj': 32} {'ravi': 2, 'rajnish': 9, 'sanjeev': 10, 'yash': 15, 'suraj': 32}>

시간 복잡도: O(n log n), 여기서 n은 사전에 있는 항목 수입니다.
보조 공간: O(n), 새로운 키와 값 목록을 생성하고 원래 사전과 동일한 수의 항목을 가진 새 사전을 생성하기 때문입니다.

우리는 키나 값을 기준으로 사전을 정렬하는 방법을 기반으로 다양한 예를 다루었습니다. 이 Python 코드를 읽고 연습하면 Python 사전의 정렬을 이해하는 데 도움이 됩니다.

키 또는 값을 기준으로 사전 값을 쉽게 정렬할 수 있습니다.

비슷한 읽기:

  • 사전 정렬
  • 값과 역순으로 사전을 정렬하는 다양한 방법
  • 키와 역순으로 사전을 정렬하는 다양한 방법
  • 값별로 사전 목록을 정렬하는 방법
  • 사전 키 및 값 목록 정렬