Python | Сортуйте словники Python за ключем або значенням

У словнику Python є два елементи - ключі та значення. Ви можете сортувати словник за ключами, значеннями або обома. У цій статті ми обговоримо методи сортування словників за допомогою ключа або значення Python .

Потрібен словник сортування в Python

Нам потрібне сортування даних, щоб зменшити складність даних і зробити запити швидшими та ефективнішими. Сортування дуже важливе, коли ми маємо справу з великою кількістю даних.

Ми можемо сортувати словник за значеннями за допомогою таких методів:

  • Спочатку відсортуйте ключі за алфавітом за допомогою ключ_значення. iterkeys() функція.
  • По-друге, відсортуйте ключі за алфавітом за допомогою відсортований (ключ_значення) і надрукувати відповідне їй значення.
  • По-третє, відсортуйте значення в алфавітному порядку ключ_значення. iritems() , ключ = лямбда (k, v) : (v, k))

Сортуйте словники Python за прикладами ключів або значень

Ось основні завдання, які потрібно виконати, щоб відсортувати словник за значенням і ключами в Python.

  1. Створити словник і відобразити його ключі списку в алфавітному порядку.
  2. Відображати як ключі, так і значення, відсортовані за ключами в алфавітному порядку.
  3. Нарешті відобразіть і ключі, і значення, відсортовані за значеннями в алфавітному порядку.

Приклад 1: Сортування словника за ключем

У цьому прикладі ми відсортуємо словник за ключами, а типом результату буде словник.

Python3




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() повертає ітератор над ключами словника.

Python3




# 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: Сортування словника за ключем

У цьому прикладі ми будемо сортувати в лексикографічному порядку, взявши тип ключа як рядок.

Python3




# 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. Тут ми використовуємо ітератор над значенням словника для сортування ключів.

Python3




# 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. Тут ми використовуємо сортування в лексикографічному порядку.

Python3




# 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. Тут ми використовуємо розуміння словника для сортування наших значень.

Python3




# 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.

Ви можете легко сортувати значення словників за їх ключем або значенням.

Схожі читання:

  • Сортування словника
  • Різні способи сортування словника за значеннями та навпаки
  • Різні способи сортування словника за ключами та навпаки
  • Способи сортування списку словників за значеннями
  • Ключ сортування та список значень словника