logo

Как да сортирате речник в Python

Речникът на Python е колекция от данни, които се съхраняват във формата ключ-стойност. Всеки ключ е свързан със своята стойност. Той е променлив по природа, което означава, че можем да променяме данните след създаването му.

Това е неподредена колекция от данни и позволява съхраняване на дублирани стойности, но ключът трябва да е уникален.

тип променливи java

Речникът се декларира с помощта на фигурни скоби {}, а двойката ключ-стойност се разделя със запетая.

 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. Сортираният речник е лесен за работа с големия обем данни и ни дава бърз резултат от търсенето.