Een woordenboek sorteren op waarde
- Python woordenboek sorteren op waarde - alleen de gesorteerde waarden ophalen
-
Gebruiken
operator.itemgetter
om het Python-woordenboek te sorteren -
Gebruik de
lambda
functie in de toetssorted
om Python in het woordenboek te sorteren -
OrderedDict
om het woordenboek-compatibele resultaat te krijgen bij het sorteren van Python-woordenboeken

Python-woordenboek is een gegevenstype zonder bestelling, daarom kon u het Python-woordenboek niet sorteren op sleutels of waarden. Maar je zou de weergave van het gesorteerde Python-woordenboek kunnen krijgen in een ander gegevenstype zoals een lijst.
Stel dat we een woordenboek hebben zoals hieronder,
exampleDict = {'first': 3, 'second': 4, 'third': 2, 'fourth': 1}
Python woordenboek sorteren op waarde - alleen de gesorteerde waarden ophalen
sortedDict = sorted(exampleDict.values())
#Out: [1, 2, 3, 4]
Gebruiken operator.itemgetter
om het Python-woordenboek te sorteren
import operator
sortedDict = sorted(exampleDict.items(), key=operator.itemgetter(1))
#Out: [('fourth', 1), ('third', 2), ('first', 3), ('second', 4)]
exampleDict.items
geeft het sleutel / waarde-paar woordenboekelementen terug. key=operator.itemgetter(1)
geeft aan dat de vergelijkingssleutel de waarde van het woordenboek is, heeft ondertussen operator.itemgetter(0)
de vergelijkingssleutel van de woordenboeksleutel.
Gebruik de lambda
functie in de toets sorted
om Python in het woordenboek te sorteren
Je zou ook kunnen lambda
werken om de vergelijkingssleutel te krijgen in plaats van operator.itemgetter
sortedDict = sorted(exampleDict.items(), key=lambda x: x[1])
#Out: [('fourth', 1), ('third', 2), ('first', 3), ('second', 4)]
exampleDict.items()
geeft een lijst met sleutel / waarde-paren van het woordenboek en het gegevenstype van het element is tuple. x
is het element van dit tupel, waar x[0]
is de sleutel en x[1]
is de waarde. key=lambda x:x[1]
geeft aan dat de vergelijkingssleutel de waarde van de woordenboekelementen is.
Optionele parameter reverse
kan worden ingesteld True
als de waarden in aflopende volgorde moeten worden gesorteerd.
sortedDict = sorted(exampleDict.items(), key=lambda x: x[1], reverse=True)
#Out: [('second', 4), ('first', 3), ('third', 2), ('fourth', 1)]
OrderedDict
om het woordenboek-compatibele resultaat te krijgen bij het sorteren van Python-woordenboeken
De bovenstaande voorbeeldcode retourneert het resultaat als een lijst, maar niet als een woordenboektype. Als u het resultaat als woordenboek-compatibel type wilt behouden, is de OrderedDict
introductie van Python 2.7 de juiste keuze.
from collections import OrderedDict
sortedDict = OrderedDict(sorted(exampleDict.items(), key=lambda x: x[1]))
#Out: OrderedDict([('fourth', 1), ('third', 2), ('first', 3), ('second', 4)])
Het OrderedDict
is een Python- dict
subklasse die de gebruikelijke methoden ondersteunt en ook de volgorde onthoudt waarin sleutels eerst worden ingevoegd.
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.
LinkedInGerelateerde Artikelen - Python Dictionary
- Hoe te controleren of een sleutel voorkomt in een woordenboek
- Alle bestanden van een map ophalen
- Hoe twee woordenboeken samen te voegen in Python 2 en 3
- Een element verwijderen uit een Python-woordenboek
- Hoe woordenboeksleutels als een lijst in Python te krijgen