Comment trier un dictionnaire Python par valeur
- Dictionnaire de tri Python par valeur - N’obtient que les valeurs triées
-
Utiliser
operator.itemgetter
pour trier le dictionnaire Python -
L’utilisation de la fonction
lambda
dans la clé desorted
pour trier le dictionnaire en Python -
OrderedDict
pour obtenir le résultat compatible avec le dictionnaire dans le tri du dictionnaire Python
Le dictionnaire Python est un type de données sans ordre, par conséquent, vous ne pourriez pas trier le dictionnaire Python par ses clés ou ses valeurs. Mais vous pourriez obtenir la représentation du dictionnaire Python trié dans d’autres types de données comme la liste.
Supposons que nous ayons un dictionnaire comme celui ci-dessous,
exampleDict = {"first": 3, "second": 4, "third": 2, "fourth": 1}
Dictionnaire de tri Python par valeur - N’obtient que les valeurs triées
sortedDict = sorted(exampleDict.values())
# Out: [1, 2, 3, 4]
Utiliser operator.itemgetter
pour trier le dictionnaire Python
import operator
sortedDict = sorted(exampleDict.items(), key=operator.itemgetter(1))
# Out: [('fourth', 1), ('third', 2), ('first', 3), ('second', 4)]
exampleDict.items
retourne la paire clé-valeur des éléments du dictionnaire. key=operator.itemgetter(1)
spécifie que la clé de comparaison est la valeur du dictionnaire, tandis que operator.itemgetter(0)
a la clé de comparaison de la clé du dictionnaire.
L’utilisation de la fonction lambda
dans la clé de sorted
pour trier le dictionnaire en Python
Vous pouvez aussi utiliser la fonction lambda
pour obtenir la clé de comparaison au lieu de operator.itemgetter
.
sortedDict = sorted(exampleDict.items(), key=lambda x: x[1])
# Out: [('fourth', 1), ('third', 2), ('first', 3), ('second', 4)]
exempleDict.items()
retourne une liste de paires clé-valeur du dictionnaire et le type de données de son élément est tuple. x
est l’élément de ce tuple, où x[0]
est la clé et x[1]
est la valeur. key=lambda x:x[1]
indique que la clé de comparaison est la valeur des éléments du dictionnaire.
Le paramètre optionnel reverse
peut être défini comme True
si les valeurs doivent être triées en ordre décroissant.
sortedDict = sorted(exampleDict.items(), key=lambda x: x[1], reverse=True)
# Out: [('second', 4), ('first', 3), ('third', 2), ('fourth', 1)]
OrderedDict
pour obtenir le résultat compatible avec le dictionnaire dans le tri du dictionnaire Python
L’exemple de code ci-dessus retourne le résultat sous forme de liste, mais pas de type dictionnaire. Si vous voulez garder le résultat comme un type compatible avec un dictionnaire, OrderedDict
introduit depuis Python 2.7 est le bon choix.
from collections import OrderedDict
sortedDict = OrderedDict(sorted(exampleDict.items(), key=lambda x: x[1]))
# Out: OrderedDict([('fourth', 1), ('third', 2), ('first', 3), ('second', 4)])
Le OrderedDict
est une sous-classe Python dict
qui supporte les méthodes habituelles et se souvient aussi de l’ordre dans lequel les clés sont insérées en premier.
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