Jak sortować słownik w Pythonie

Słownik Pythona to zbiór danych przechowywanych w formie klucz-wartość. Każdy klucz jest powiązany z jego wartością. Ma charakter zmienny, co oznacza, że ​​możemy zmieniać dane już po ich utworzeniu.

Jest to nieuporządkowany zbiór danych, pozwalający na przechowywanie zduplikowanych wartości, przy czym klucz musi być unikalny.

Słownik deklaruje się za pomocą nawiasów klamrowych {}, a parę klucz-wartość oddziela się przecinkiem.

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

Wyjście:

Po co sortować słownik

  • Złożoność czasu wyszukiwania listy wynosi O(n), a słownik ma złożoność czasu wyszukiwania 0(1), co sprawia, że ​​słownik jest szybszy od listy. Słownik może być używany zamiast listy, kiedy tylko zajdzie taka potrzeba.
  • Sortowanie pozwala nam efektywnie analizować dane podczas pracy ze strukturą danych.
  • Posortowany słownik zapewnia lepsze zrozumienie skomplikowanych operacji.

Przyjrzyjmy się różnym sposobom sortowania słownika.

  • Sortowanie według kluczy
  • Sortowanie według wartości
  • Algorytm sortowania
  • Odwracanie posortowanej kolejności

Sortowanie według kluczy i wartości

Pyton oferuje wbudowane funkcje klawiszy, funkcje klawiszy() i wartości() do sortowania słownika. Przyjmuje dowolny iterowalny argument i zwraca posortowaną listę kluczy. Za pomocą klawiszy możemy posortować słownik w kolejności rosnącej. Rozumiemy następujący przykład.

Przykład -

 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()))  

Wyjście:

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

Wyjaśnienie -

W powyższym kodzie zadeklarowaliśmy słownik nazwy . Użyliśmy wbudowanej funkcji wraz z posortowane() funkcja, która zwróciła listę posortowanych kluczy. Następnie skorzystaliśmy z rzeczy() funkcja, aby uzyskać słownik w posortowanej kolejności.

Algorytm sortowania

Istnieją różne algorytmy sortowania służące do sortowania słownika; możemy użyć innych argumentów w metodzie sortowanej. Rozumiemy następujący przykład.

Przykład -

 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__)])  

Wyjście:

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

Odwróć posortowaną kolejność

Słownik można odwrócić za pomocą opcji odwracać argument. Rozumiemy następujący przykład.

Przykład -

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

Wyjście:

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

W tym samouczku omówiliśmy, jak sortować słownik w Pythonie. Posortowany słownik łatwo radzi sobie z dużą ilością danych i zapewnia szybkie wyniki wyszukiwania.