Python 사전에는 키와 값이라는 두 가지 요소가 있습니다. 키, 값 또는 둘 다를 기준으로 사전을 정렬할 수 있습니다. 이 기사에서는 다음을 사용하여 키 또는 값으로 사전을 정렬하는 방법에 대해 설명합니다. 파이썬 .
Python에서 사전 정렬의 필요성
데이터의 복잡성을 줄이고 쿼리를 더 빠르고 효율적으로 만들기 위해서는 데이터 정렬이 필요합니다. 많은 양의 데이터를 처리할 때 정렬은 매우 중요합니다.
다음 방법을 사용하여 사전을 값별로 정렬할 수 있습니다.
- 먼저 다음을 사용하여 키를 알파벳순으로 정렬합니다. 핵심 가치. 반복키() 기능.
- 둘째, 다음을 사용하여 키를 알파벳순으로 정렬합니다. 정렬됨(키_값) 함수를 실행하고 그에 해당하는 값을 인쇄합니다.
- 셋째, 다음을 사용하여 값을 알파벳순으로 정렬합니다. 핵심 가치. 반복항목() , 키 = 람다 (k, v) : (v, k))
키 또는 값 예제를 기준으로 Python 사전 정렬
Python에서 값과 키를 기준으로 사전을 정렬하기 위해 수행해야 하는 주요 작업은 다음과 같습니다.
- 만들기 사전 목록 키를 알파벳순으로 표시합니다.
- 키와 값을 모두 키별로 알파벳순으로 정렬하여 표시합니다.
- 마지막으로 키와 값을 모두 값별로 알파벳순으로 정렬하여 표시합니다.
예 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 사전의 정렬을 이해하는 데 도움이 됩니다.
키 또는 값을 기준으로 사전 값을 쉽게 정렬할 수 있습니다.
비슷한 읽기:
- 사전 정렬
- 값과 역순으로 사전을 정렬하는 다양한 방법
- 키와 역순으로 사전을 정렬하는 다양한 방법
- 값별로 사전 목록을 정렬하는 방법
- 사전 키 및 값 목록 정렬