logo

Як сортувати словник у Python

Словник Python — це набір даних, які зберігаються у формі ключ-значення. Кожен ключ пов'язаний зі своїм значенням. Він змінний за своєю природою, що означає, що ми можемо змінювати дані після їх створення.

Це невпорядкований збір даних і дозволяє зберігати повторювані значення, але ключ має бути унікальним.

Java 8

Словник оголошується за допомогою фігурних дужок {}, а пара ключ-значення відокремлюється комою.

 dict1 = {'name': 'Devansh', 'age': 22, 'Rollno':90014} print(dict1) 

Вихід:

Для чого потрібно сортувати словник

  • Складність часу пошуку списку дорівнює O(n), а словник має складність часу пошуку 0(1), що робить словник швидшим за список. Словник можна використовувати замість списку, коли це потрібно.
  • Сортування дозволяє нам ефективно аналізувати дані, коли ми працюємо зі структурою даних.
  • Відсортований словник забезпечує краще розуміння виконання складних операцій.

Давайте розберемося з різними способами сортування словника.

  • Сортування за ключами
  • Сортування за значеннями
  • Алгоритм сортування
  • Зміна порядку сортування на зворотний

Сортування за ключами та значеннями

Python пропонує вбудовані функції ключів keys() і values() для сортування словника. Він приймає будь-який ітерований елемент як аргумент і повертає відсортований список ключів. Ми можемо використовувати клавіші для сортування словника в порядку зростання. Давайте розберемося в наступному прикладі.

приклад -

 names = {1:'Alice' ,2:'John' ,4:'Peter' ,3:'Andrew' ,6:'Ruffalo' ,5:'Chris' } #print a sorted list of the keys print(sorted(names.keys())) #print the sorted list with items. print(sorted(names.items())) 

Вихід:

 [1, 2, 3, 4, 5, 6] [(1, 'Alice'), (2, 'John'), (3, 'Andrew'), (4, 'Peter'), (5, 'Chris'), (6, 'Ruffalo')] 

Пояснення -

У наведеному вище коді ми оголосили словник імена . Ми використовували вбудовану функцію разом із відсортовано() функція, яка повертає список відсортованих ключів. Далі ми використали елементи() функція, щоб отримати словник у відсортованому порядку.

Алгоритм сортування

Існують різні алгоритми сортування для сортування словника; ми можемо використовувати інші аргументи в сортованому методі. Давайте розберемося в наступному прикладі.

приклад -

 daynames = { 'one' : 'Monday' , 'six' : 'Saturday' ,'three' : 'Wednesday' , 'two' : 'Tuesday' , 'five': 'Friday' , 'seven': 'Sunday' } print(daynames) number = { 'one' : 1 , 'two' : 2 , 'three' : 3 , 'four' : 4 , 'five' : 5 , 'six' : 6 , 'seven' : 7} print(sorted(daynames , key=number.__getitem__)) print([daynames[i] for i in sorted(daynames , key=number.__getitem__)]) 

Вихід:

 {'one': 'Monday', 'six': 'Saturday', 'three': 'Wednesday', 'two': 'Tuesday', 'five': 'Friday', 'seven': 'Sunday'} ['one', 'two', 'three', 'five', 'six', 'seven'] ['Monday', 'Tuesday', 'Wednesday', 'Friday', 'Saturday', 'Sunday'] 

Змінити відсортований порядок

Словник можна перевертати за допомогою зворотний аргумент. Давайте розберемося в наступному прикладі.

приклад -

 a = {'a':2 ,'b':1 ,'c':3 ,'d':4 ,'e':5 ,'f':6 } print(sorted(a.values() , reverse= True)) 

Вихід:

 [6, 5, 4, 3, 2, 1] 

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