Wie man ein Python-Dictionary nach Wert sortiert
- Python-SortierDictionary nach Wert - Nur die sortierten Werte erhalten
-
Verwenden von
operator.itemgetter
zum Sortieren des Python-Dictionaries -
Verwendung der Funktion
lambda
im Schlüssel vonsorted
zum Sortieren des Dictionaries in Python -
OrderedDict
, um das Dictionary-kompatible Ergebnis bei der Python-Dictionariesortierung zu erhalten
Das Python-Dictionary ist ein ordnungsloser Datentyp, daher konnten Sie das Python-Dictionary nicht nach seinen Schlüsseln oder Werten sortieren. Aber Sie könnten die Darstellung des sortierten Python-Dictionaries in anderen Datentypen wie list erhalten.
Angenommen, wir haben ein Dictionary wie unten,
exampleDict = {"first": 3, "second": 4, "third": 2, "fourth": 1}
Python-SortierDictionary nach Wert - Nur die sortierten Werte erhalten
sortedDict = sorted(exampleDict.values())
# Out: [1, 2, 3, 4]
Verwenden von operator.itemgetter
zum Sortieren des Python-Dictionaries
import operator
sortedDict = sorted(exampleDict.items(), key=operator.itemgetter(1))
# Out: [('fourth', 1), ('third', 2), ('first', 3), ('second', 4)]
exampleDict.items
gibt das Schlüssel-Werte-Paar der Dictionary-Elemente zurück. key=operator.itemgetter(1)
gibt an, dass der Vergleichsschlüssel der Wert des Dictionaries ist, während operator.itemgetter(0)
den Vergleichsschlüssel des Dictionarieschlüssels hat.
Verwendung der Funktion lambda
im Schlüssel von sorted
zum Sortieren des Dictionaries in Python
Sie könnten auch die Funktion lambda
verwenden, um den Vergleichsschlüssel statt operator.itemgetter
zu erhalten.
sortedDict = sorted(exampleDict.items(), key=lambda x: x[1])
# Out: [('fourth', 1), ('third', 2), ('first', 3), ('second', 4)]
exampleDict.items()
gibt eine Liste von Schlüssel-Werte-Paaren des Dictionaries zurück und der Datentyp des Elements ist Tupel. x
ist das Element dieses Tupels, wobei x[0]
der Schlüssel und x[1]
der Wert ist. key=lambda x:x[1]
gibt an, dass der Vergleichsschlüssel der Wert der Dictionary-Elemente ist.
Der optionale Parameter reverse
könnte auf True
gesetzt werden, wenn die Werte in absteigender Reihenfolge sortiert werden sollen.
sortedDict = sorted(exampleDict.items(), key=lambda x: x[1], reverse=True)
# Out: [('second', 4), ('first', 3), ('third', 2), ('fourth', 1)]
OrderedDict
, um das Dictionary-kompatible Ergebnis bei der Python-Dictionariesortierung zu erhalten
Der oben gezeigte Beispielcode gibt das Ergebnis als Liste, aber nicht als Dictionarytyp zurück. Wenn Sie das Ergebnis als Dictionarykompatibler Typ erhalten wollen, ist OrderedDict
, das seit Python 2.7 eingeführt wurde, die richtige Wahl.
from collections import OrderedDict
sortedDict = OrderedDict(sorted(exampleDict.items(), key=lambda x: x[1]))
# Out: OrderedDict([('fourth', 1), ('third', 2), ('first', 3), ('second', 4)])
Die Unterklasse OrderedDict
ist eine Python-dict
Unterklasse, die die üblichen Methoden unterstützt und sich auch die Reihenfolge merkt, in der die Schlüssel zuerst eingefügt werden.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook