Accéder au contenu principal

Comment trier un dictionnaire par valeur en Python

Découvrez des méthodes efficaces pour trier un dictionnaire par valeurs en Python. Découvrez le tri par ordre croissant et décroissant, ainsi que des conseils supplémentaires pour le tri par clé.
Actualisé 29 août 2025  · 5 min de lecture

Le tri est une opération fondamentale dans la manipulation des données, et les dictionnaires en Python offrent des méthodes intégrées pour trier des ensembles d'éléments. Cependant, il est possible de Python ne font pas exception. Que nous travaillions sur un projet d'analyse de données complexe ou sur un simple script, il peut être extrêmement utile de comprendre comment trier efficacement un dictionnaire par valeur.

Dans cet article, nous analysons les différentes méthodes permettant de trier des dictionnaires en fonction de leurs valeurs en Python, afin de disposer des outils nécessaires pour organiser nos données selon nos besoins.

Réponse succincte : Comment trier un dictionnaire par valeur en Python

Pour trier rapidement un dictionnaire par valeur, nous pouvons utiliser la fonction intégrée de Python .sorted() en combinaison avec une fonction lambda. Cette méthode est simple et efficace dans la plupart des cas d'utilisation.

student_scores = {
    'Alex': 88,
    'Ben': 75,
    'Cyrus': 93,
    'Denver': 85
}
sorted_by_values = dict(sorted(student_scores.items(), key=lambda item: item[1]))

print(sorted_by_values)

# Expected output:
# {'Ben': 75, 'Denver': 85, 'Alex': 88, 'Cyrus': 93}

Maintenant, prenons un peu de recul et essayons de comprendre les dictionnaires Python et pourquoi nous pourrions avoir besoin de les trier.

Que sont les dictionnaires Python ?

Python Les dictionnaires Python sont un type de structure de données qui stocke les données sous forme de paires clé-valeur. Ils sont extrêmement polyvalents et permettent des recherches, des insertions et des suppressions rapides. Voici un exemple simple :

student_scores = {
    'Alex': 88,
    'Ben': 75,
    'Cyrus': 93,
    'Denver': 85
}

# No expected output

Dans le dictionnaire ci-dessus, les noms des étudiants constituent les clés, et leurs notes les valeurs. 

Les dictionnaires sont utiles dans de nombreux cas, par exemple lorsque nous avons besoin de stocker et de récupérer des données de manière efficace. Cependant, il est parfois nécessaire de trier ces données par valeurs plutôt que par clés, par exemple lorsque nous souhaitons classer les étudiants en fonction de leurs notes.

Comment trier un dictionnaire par valeur en Python

Examinons maintenant de plus près la fonction .sorted() en Python et comment l'utiliser spécifiquement pour trier des dictionnaires par valeur.

Comment trier un dictionnaire par valeur à l'aide de .sorted()

La fonction .sorted() est un outil puissant et flexible pour le tri en Python. Pour trier un dictionnaire en fonction de ses valeurs, nous pouvons utiliser une fonction lambda afin de spécifier que le tri doit être basé sur les valeurs du dictionnaire.

student_scores = {
    'Alex': 88,
    'Ben': 75,
    'Cyrus': 93,
    'Denver': 85
}
sorted_by_values = dict(sorted(student_scores.items(), key=lambda item: item[1]))

print(sorted_by_values)

# Expected output: 
# {'Ben': 75, 'Denver': 85, 'Alex': 88, 'Cyrus': 93}

Dans cet exemple, student_scores.items() renvoie un objet de vue qui affiche une liste des paires clé-valeur du dictionnaire. La fonction .sorted() trie ces paires en fonction des valeurs (item[1]), et dict() reconvertit la liste triée en un dictionnaire.

Comment trier un dictionnaire par valeur dans l'ordre décroissant ou croissant

Par défaut, la fonction .sorted() trie dans l'ordre croissant. Cependant, selon la situation, nous pouvons facilement modifier cela pour trier par ordre décroissant ou croissant en définissant le paramètre reverse sur True ou False.

Comment trier un dictionnaire par ordre croissant

Comme mentionné précédemment, un dictionnaire sera trié par ordre croissant par défaut lors de l'utilisation de la fonction .sorted(). Nous pouvons également obtenir un ordre croissant en définissant le paramètre reverse sur False.

sorted_by_values_asc = dict(sorted(student_scores.items(), key=lambda item: item[1], reverse=False))
print(sorted_by_values_asc)

# Expected output:
# {'Ben': 75, 'Denver': 85, 'Alex': 88, 'Cyrus': 93}

Comment trier un dictionnaire par ordre décroissant

Si nous souhaitons effectuer un tri par ordre croissant, nous pouvons définir le paramètre reverse paramètre sur True.

sorted_by_values_desc = dict(sorted(student_scores.items(), key=lambda item: item[1], reverse=True))
print(sorted_by_values_desc)

# Expected output:
# {'Cyrus': 93, 'Alex': 88, 'Denver': 85, 'Ben': 75}

Bonus : Comment trier un dictionnaire par clé en Python

Bien que cet article se concentre sur le tri par valeurs, il est également utile de savoir comment trier un dictionnaire par ses clés. Cela peut être réalisé de manière similaire en utilisant la fonction .sorted() .

sorted_by_keys = dict(sorted(student_scores.items()))
print(sorted_by_keys)

# Expected output:
# {'Alex': 88, 'Ben': 75, 'Cyrus': 93, 'Denver': 85}

Pour un ordre décroissant, veuillez simplement définir reverse=True:

sorted_by_keys_desc = dict(sorted(student_scores.items(), reverse=True))
print(sorted_by_keys_desc)

# Expected output:
# {'Denver': 85', 'Cyrus': 93, 'Ben': 75, 'Alex': 88}

Conclusion

Le tri d'un dictionnaire en fonction de ses valeurs dans Python est une tâche courante qui peut être facilement accomplie à l'aide de la fonction .sorted(). Que nous ayons besoin de données classées par ordre croissant ou décroissant, la maîtrise de ces techniques rendra nos tâches de manipulation de données plus simples et plus efficaces. En maîtrisant ces méthodes de tri, nous pouvons garantir que nos données sont organisées de manière cohérente afin de répondre au mieux à nos besoins.

Foire aux questions

Q1 : Est-il possible de trier un dictionnaire par valeurs si ces dernières sont des chaînes de caractères plutôt que des nombres ?

A1 : Oui, il est possible de trier un dictionnaire par valeurs, même si ces valeurs sont des chaînes de caractères. La fonction .sorted() trie les valeurs par ordre alphabétique croissant ou décroissant, comme elle le fait avec les nombres.

Q2 : Comment puis-je trier un dictionnaire par valeurs s'il contient des dictionnaires imbriqués ?

A2 : Pour trier un dictionnaire contenant des dictionnaires imbriqués, il est nécessaire de définir une fonction de tri personnalisée qui extrait et compare les valeurs imbriquées pertinentes. Cela nécessite une fonction lambda plus complexe ou une fonction distincte pour gérer la comparaison.

Q3 : Est-il possible de trier un dictionnaire par valeurs sans créer un nouveau dictionnaire ?

A3 : Non, les dictionnaires en Python sont intrinsèquement des collections non ordonnées dans les versions antérieures à la version 3.7, et bien qu'ils conservent l'ordre d'insertion à partir de Python 3.7, il n'existe aucune méthode intégrée pour les trier sur place. Le tri d'un dictionnaire aboutit toujours à la création d'un nouveau dictionnaire dans l'ordre souhaité.

Q4 : Quelle est la complexité temporelle du tri d'un dictionnaire par valeurs en Python ?

A4 : La complexité temporelle du tri d'un dictionnaire par valeurs à l'aide de la fonction ` .sorted() ` est O(n log n), où n est le nombre de paires clé-valeur dans le dictionnaire. En effet, .sorted() utilise en interne Timsort, un algorithme de tri hybride présentant cette complexité.

Q5 : Le tri d'un dictionnaire par valeurs modifie-t-il le dictionnaire d'origine ?

A5 : Non, trier un dictionnaire par valeurs à l'aide de la fonction ` .sorted() ` crée un nouveau dictionnaire. Le dictionnaire original reste inchangé.


Neetika Khandelwal's photo
Author
Neetika Khandelwal
LinkedIn
Je suis développeur Java et rédacteur technique accompli, spécialisé dans la science des données, l'intelligence artificielle (IA) et la programmation Java. Avec plus de 3 ans d'expérience dans le développement de logiciels, j'ai acquis une bonne expertise dans la création d'applications robustes et évolutives et dans l'exploitation de la polyvalence de Java pour résoudre des problèmes complexes. Je suis passionné par le partage des connaissances avec l'ensemble de la communauté technologique. À travers des articles techniques complets, des tutoriels et des guides, j'essaie de démystifier les sujets complexes liés à la science des données et à l'IA, en les rendant accessibles aux débutants et aux professionnels expérimentés. Actuellement, j'ai publié plus de 125 blogs.
Sujets

Veuillez approfondir vos connaissances en Python grâce à ces cours.

Cours

Introduction à Python

4 h
6.6M
Apprenez les bases de l’analyse de données avec Python en quatre heures et explorez ses principaux packages.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow
Apparenté

Didacticiel

Comment supprimer un élément d'une liste en Python

Comprenez comment supprimer des éléments d'une liste en Python. Veuillez vous familiariser avec les méthodes telles que remove(), pop() et del pour la gestion des listes.
Allan Ouko's photo

Allan Ouko

Didacticiel

Méthode index() de Python expliquée à l'aide d'exemples

Découvrez comment utiliser la fonction index() de Python pour trouver la position d'éléments dans des listes.
Sejal Jaiswal's photo

Sejal Jaiswal

Didacticiel

Comment diviser des listes en Python : Exemples de base et méthodes avancées

Apprenez à diviser des listes Python à l'aide de techniques telles que le découpage, les compréhensions de listes et itertools. Veuillez découvrir quand utiliser chaque méthode pour une gestion optimale des données.
Allan Ouko's photo

Allan Ouko

Didacticiel

Ajouter à un dictionnaire Python : Comment ajouter des paires clé-valeur

Découvrez comment ajouter des paires clé-valeur dans un dictionnaire Python à l'aide de méthodes telles que la notation entre crochets, .update() pour les ajouts en masse et .setdefault() pour les insertions conditionnelles.
Samuel Shaibu's photo

Samuel Shaibu

Didacticiel

Guide des tables de hachage Python

Découvrez ce que sont les hachages associatifs et comment ils sont implémentés en Python à l'aide de dictionnaires.
Javier Canales Luna's photo

Javier Canales Luna

Didacticiel

Données JSON Python : Un guide illustré d'exemples

Apprenez à utiliser JSON en Python, notamment la sérialisation, la désérialisation, le formatage, l'optimisation des performances, la gestion des API, ainsi que les limites et les alternatives de JSON.
Moez Ali's photo

Moez Ali

Voir plusVoir plus