Comment trier un dictionnaire par clé en Python

Azaz Farooq 10 octobre 2023
  1. Dictionnaire de tri Python par clé avec la méthode dict.keys()
  2. Dictionnaire de tri Python par clé avec la méthode dict.items()
  3. Dictionnaire Python de tri par clé avec la méthode OrderedDict()
  4. Trier le dictionnaire en ordre inverse en Python
  5. Dictionnaire de tri Python avec la méthode de fonction personnalisée key
Comment trier un dictionnaire par clé en Python

Le dictionnaire Python est le même que la table de hachage qui conserve les entrées en évaluant les hachages de clés, et la séquence des entrées est impossible à anticiper. Cet article présentera comment trier le dictionnaire par clé en Python.

Dictionnaire de tri Python par clé avec la méthode dict.keys()

Prenons l’exemple du dictionnaire ci-dessous.

dict = {"hello": 56, "at": 23, "test": 43, "this": 43}

La sortie du dict.keys() est

dict_keys(["hello", "at", "test", "this"])

Nous pourrions créer un nouveau dictionnaire ordonné à partir de cette liste de clés non ordonnée.

sorted(dict.keys())

Production:

['at', 'hello', 'test', 'this']

Nous appliquons de manière répétée le tri sur cette liste ordonnée en sélectionnant chaque entrée du dictionnaire.

for key in sorted(dict.keys()):
    print(key, " :: ", dict[key])

Production:

at  ::  23
hello  ::  56
test  ::  43
this  ::  43

Dictionnaire de tri Python par clé avec la méthode dict.items()

Nous pouvons également trier un dictionnaire par clé en Python avec la méthode dict.items().

Cela générera une liste qui contiendra des paires clé-valeur?

dict.items()

Production:

dict_items([('hello', 56), ('at', 23), ('test', 43), ('this', 43)])

Nous pourrions faire une liste ordonnée par la fonction suivante. Elle triera les entrées du dictionnaire en fonction des valeurs clés.

sorted(dict.keys())

Production:

['at', 'hello', 'test', 'this']

Maintenant, pour produire la paire clé-valeur de tri du dictionnaire, nous utilisons le code suivant.

for elem in sorted(dict.items()):
    print(elem[0], " ::", elem[1])

Production:

at  :: 23
hello  :: 56
test  :: 43
this  :: 43

En termes de complexité, il est plus puissant que l’approche précédente. Comme nous n’avons pas besoin de vérifier la valeur clé après avoir trié la liste itérable, comme dans dict.key().

Dictionnaire Python de tri par clé avec la méthode OrderedDict()

Nous pouvons également trier les éléments du dictionnaire par valeur clé en utilisant le module collections.

import collections

d = {2: 13, 1: 9, 4: 25, 3: 0}
result = collections.OrderedDict(sorted(d.items()))
print(result)

Production:

OrderedDict([(1, 9), (2, 13), (3, 0), (4, 25)])

Trier le dictionnaire en ordre inverse en Python

Auparavant, nous classions les éléments du dictionnaire par ordre croissant. Maintenant, nous discutons des moyens de trier les éléments du dictionnaire par ordre décroissant.

La syntaxe est:

sorted(iterable_sequence, reverse=True)

Le code suivant a trié et inversé les éléments du dictionnaire.

dict = {"hello": 56, "at": 23, "test": 43, "this": 43}
for elem in sorted(dict.items(), reverse=True):
    print(elem[0], " ::", elem[1])

Le paramètre reverse=true permet de s’assurer que le dictionnaire trié est inversé.

Production:

this  :: 43

test  :: 43

hello  :: 56

at  :: 23

Dictionnaire de tri Python avec la méthode de fonction personnalisée key

Cette méthode permet de trier les éléments du dictionnaire en utilisant la longueur de la chaîne key.

sorted(iterable_sequence, key=Function)

La fonction lambda qui retourne la taille de la chaîne est donnée au paramètre key.

listofTuples = sorted(dict.items() ,  key=lambda x: len (x[0] ) )
for elem in listofTuples :
    print(elem[0] , " ::" , elem[1] )

Production:

at  :: 23

test  :: 43

this  :: 43

hello  :: 56

Article connexe - Python Dictionary