Comment trier un dictionnaire Python par valeur

  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

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 renvoie 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() renvoie 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 renvoie 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.

Article connexe - Python dictionary

  • Comment vérifier si une clé existe dans un dictionnaire en Python
  • Comment fusionner deux dictionnaires en Python 2 et 3
  • Comment retirer un élément d'un dictionnaire Python
  • Comment obtenir des clés de dictionnaire sous forme de liste en Python
  • comments powered by Disqus