logo

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.

Powiedziała Madhuri

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.