Comment trier un dictionnaire Python par valeur

Jinku Hu 30 janvier 2023
  1. Dictionnaire de tri Python par valeur - N’obtient que les valeurs triées
  2. Utiliser operator.itemgetter pour trier le dictionnaire Python
  3. L’utilisation de la fonction lambda dans la clé de sorted pour trier le dictionnaire en Python
  4. OrderedDict pour obtenir le résultat compatible avec le dictionnaire dans le tri du dictionnaire Python
Comment trier un dictionnaire Python par valeur

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.

Auteur: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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

Article connexe - Python Dictionary