Python Sort Słownik według wartości

Python Sort Słownik według wartości
W Python słownik odnosi się do nieuporządkowanego zbioru elementów w postaci par kluczowych.

Słowniki są pomocne przy przechowywaniu zmapowanych danych, ponieważ każdy klucz jest powiązany z odpowiednią wartością.

Chociaż słowniki nie są w porządku, słowniki są sortowane za pomocą Wstaw zamówienie W ostatnich wersjach Pythona.

Dowiedzmy się, jak możemy sortować słownik oparty na wartościach.

Python sortowana funkcja

Możemy użyć posortowane () funkcja, aby sortować słownik według wartości. Składnia funkcji pokazano następująco:

posortowane (iterable, key = brak, odwrotne = false)

Parametry funkcji pokazano poniżej:

  1. Iterable - odnosi się do obiektu iterowalnego, takiego jak słownik, lista itp.
  2. klucz - odnosi się do funkcji, która działa jako klucz dla tego rodzaju
  3. odwracać - umożliwia funkcję sortowanie iterowalnego w odwrotnej kolejności

Możemy użyć posortowanej funkcji do sortowania słownika według wartości, jak pokazano w poniższym przykładzie:

db =
„Mysql”: 1000,
„Postgresql”: 20000,
„MongoDB”: 250,
„Sqlite”: 100,
„Redis”: 5000

sorted_values ​​= sortowane (db.Items (), key = lambda x: x [1], odwrotna = true)

W poprzednim przykładowym kodzie zaczynamy od utworzenia słownika, który chcemy sortować. Słownik utrzymuje typ bazy danych jako klucz i liczbę rekordów jako wartość.

Następnie używamy posortowane () funkcja sortowania elementów w naszym słowniku. Wreszcie db.Itmes Funkcja pozwala nam uzyskać wartości słownika jako listy iterowalnej.

To usuwa potrzebę odniesienia się do wartości przez pozycje indeksu.

Podajemy anonimową funkcję w parametrze kluczowym, która pozwala nam sortować wartości z listy.

Ponieważ chcemy, aby nasze dane były sortowane z największych na najmniejsze, ustawiamy parametr odwrotnego na „true”.

Teraz poprzedni kod powinien zwrócić listę z sortowanymi wartościami. Aby uzyskać dostęp do elementów, możemy użyć następującego kodu do pętli:

Do I W sorted_values:

Drukuj (i [0], i [1])

Tutaj, indeks 0 listy reprezentuje klucz słownika, a indeks 1 reprezentuje wartość.

Poprzedni kod powinien zwrócić, jak pokazano poniżej:

PostgreSQL 20000
Redis 5000
Mysql 1000
MongoDB 250
SQLITE 100

Sortowanie funkcji z Itemgetter

Moduł operatora Python zapewnia nam itemgetter () funkcja i pozwala nam uzyskać obiekt, który pobiera element z określonego operandu.

Mówiąc prosto, Itemgetter (n) Funkcja utworzy obiekt, który można nazwać i pobiera NTH Element (indeks).

Na przykład:

operator.Itemgetter (3) („ABCDEFG”)

Powyższa funkcja pobiera element w trzecim indeksie z dostarczonego ciągu. Funkcja działa z dowolnym iteracyjnym obiektem, takimi jak listy, krotki, słowniki itp.

Możemy połączyć itemgetter () funkcja sortowania wartości w słowniku, jak pokazano w poniższym przykładzie:

od operatora importowania Itemgetter
TUP = posortowany (db.Items (), key = itemgetter (1))
sorted_values ​​= klucz: wartość dla klucza, wartość w TUP
druk (sorted_values)

Zaczynamy od zaimportowania funkcji Itemgetter z modułu operatora w poprzednim kodzie.

Następnie używamy db.rzeczy() funkcja, aby uzyskać pary wartości kluczowej jako listę krotek. Aby pobrać tylko wartości, używamy funkcji Itemgetter i przekazujemy indeks 1 jako parametr.

Powinno to zwrócić wartości słownika.

Po rozwiązaniu listy możemy nad nią iterować i utworzyć nowy słownik z sortowanych wartości.

Powinno to zwrócić sortowany słownik, jak pokazano następująco:

„SQLITE”: 100, „MongoDB”: 250, „MySQL”: 1000, „Redis”: 5000, „Postgresql”: 20000

Zauważ, że kolejność w tym jest w kolejności rosnącej.

Wniosek

Ten artykuł pokazuje metody sortowania słownika według wartości. Używając posortowane () funkcja, możesz ustawić parametr odwrotnego na „false”, aby sortować słownik w kolejności rosnącej.