logo

Pythona | Sortuj słowniki Pythona według klucza lub wartości

W słowniku Pythona znajdują się dwa elementy — klucze i wartości. Możesz sortować słownik według kluczy, wartości lub obu. W tym artykule omówimy metody sortowania słowników według klucza lub wartości za pomocą Pyton .

Potrzeba sortowania słownika w Pythonie

Potrzebujemy sortowania danych, aby zmniejszyć złożoność danych i sprawić, że zapytania będą szybsze i wydajniejsze. Sortowanie jest bardzo ważne, gdy mamy do czynienia z dużą ilością danych.

Możemy sortować słownik według wartości, korzystając z następujących metod:



  • Najpierw posortuj klucze alfabetycznie za pomocą kluczowa wartość. iterkeys() funkcjonować.
  • Po drugie, posortuj klucze alfabetycznie za pomocą posortowane (wartość_klucza) funkcję i wydrukuj odpowiadającą jej wartość.
  • Po trzecie, posortuj wartości alfabetycznie, używając kluczowa wartość. elementy iteryczne() , klucz = lambda (k, v): (v, k))

Sortuj słowniki Pythona według przykładów kluczy lub wartości

Oto główne zadania, które należy wykonać, aby posortować słownik według wartości i kluczy w Pythonie.

  1. Stwórz słownik i wyświetl alfabetycznie klawisze listy.
  2. Wyświetla zarówno klucze, jak i wartości, posortowane według klucza w kolejności alfabetycznej.
  3. Na koniec wyświetl zarówno klucze, jak i wartości, posortowane według wartości w kolejności alfabetycznej.

Przykład 1: Sortowanie słownika według klucza

W tym przykładzie posortujemy słownik według kluczy, a typem wyniku będzie słownik.

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

>

>

Wyjście

{'rajnish': 9, 'ravi': 10, 'sanjeev': 15, 'suraj': 32, 'yash': 2}>

Przykład 2: Wyświetlanie kluczy w posortowanej kolejności

W tym przykładzie próbujemy posortować słownik według kluczy i wartości w Pythonie. W tym przypadku iterkeys() zwraca iterator po kluczach słownika.

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

>

>

Wyjście

Task 1:- key_value {2: 56, 1: 2, 5: 12, 4: 24, 6: 18, 3: 323} 1 2 3 4 5 6>

Przykład 3: Sortowanie słownika według klucza

W tym przykładzie posortujemy w porządku leksykograficznym, przyjmując typ klucza jako ciąg znaków.

Python3




różnica między drzewem binarnym a drzewem wyszukiwania binarnego

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

>

>

Wyjście

OrderedDict([('rajnish', '9'), ('ravi', '10'), ('sanjeev', '15'), ('suraj', '32'), ('yash', '2')])>

Przykład 4: Sortowanie kluczy i wartości alfabetycznie za pomocą klucza

W tym przykładzie próbujemy posortować słownik według kluczy i wartości w Pythonie. Tutaj używamy iteratora po wartości słownika, aby posortować klucze.

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

>

>

Wyjście

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

Przykład 5: Sortowanie kluczy i wartości alfabetycznie na podstawie wartości

W tym przykładzie próbujemy posortować słownik według kluczy i wartości w Pythonie. Tutaj używamy sortowania w porządku leksykograficznym.

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

>

>

Wyjście

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

Złożoność czasowa tego programu wynosi O(n log n), gdzie n to liczba par klucz-wartość w słowniku.

Złożoność przestrzeni pomocniczej dla tego programu wynosi również O(n), gdzie n jest liczbą par klucz-wartość w słowniku.

Przykład 6: Sortowanie słownika według wartości

W tym przykładzie próbujemy posortować słownik według wartości w Pythonie. Tutaj używamy rozumienia słownikowego do sortowania naszych wartości.

Python3

dzielenie ciągu w c++




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

>

>

Wyjście:

{'ravi': 10, 'rajnish': 9, 'sanjeev': 15, 'yash': 2, 'suraj': 32} {'ravi': 2, 'rajnish': 9, 'sanjeev': 10, 'yash': 15, 'suraj': 32}>

Złożoność czasowa: O(n log n), gdzie n jest liczbą pozycji w słowniku.
Przestrzeń pomocnicza: O(n), ponieważ tworzymy nowe listy kluczy i wartości oraz tworzymy nowy słownik z taką samą liczbą wpisów jak słownik oryginalny.

Omówiliśmy różne przykłady oparte na sortowaniu słownika według klucza lub wartości. Czytanie i ćwiczenie tych kodów Pythona pomoże Ci zrozumieć sortowanie w słownikach Pythona.

Możesz łatwo sortować wartości słowników według ich klucza lub wartości.

Podobne lektury:

  • Sortuj słownik
  • Różne sposoby sortowania słownika według wartości i odwrotności
  • Różne sposoby sortowania słownika według kluczy i rewersu
  • Sposoby sortowania listy słowników według wartości
  • Sortuj listę kluczy i wartości słownika