Maison >développement back-end >Tutoriel Python >Comment puis-je trier une liste de dictionnaires en Python selon une clé spécifique ?

Comment puis-je trier une liste de dictionnaires en Python selon une clé spécifique ?

DDD
DDDoriginal
2024-12-31 12:49:14555parcourir

How Can I Sort a List of Dictionaries in Python by a Specific Key?

Tri des dictionnaires en Python

Trier une liste de dictionnaires en fonction de la valeur d'une clé spécifique est une tâche courante. Considérons une liste de dictionnaires avec des noms et des âges :

list_to_be_sorted = [{'name': 'Homer', 'age': 39}, {'name': 'Bart', 'age': 10}]

Pour trier cette liste par nom par ordre croissant, nous pouvons utiliser la fonction sorted() avec le paramètre key. Le paramètre key nous permet de spécifier une fonction qui détermine l'ordre de tri.

newlist = sorted(list_to_be_sorted, key=lambda d: d['name'])

Dans ce cas, nous définissons une fonction lambda qui extrait la valeur 'name' de chaque dictionnaire et utilise cette valeur pour le tri. Le résultat trié sera :

[{'name': 'Bart', 'age': 10}, {'name': 'Homer', 'age': 39}]

Alternativement, nous pouvons utiliser Operator.itemgetter au lieu de définir une fonction personnalisée. Itemgetter renvoie un appelable qui extrait un champ spécifique de chaque dictionnaire.

from operator import itemgetter
newlist = sorted(list_to_be_sorted, key=itemgetter('name'))

Cela produit également le même résultat trié que précédemment.

Enfin, pour trier la liste par ordre décroissant, nous pouvons set reverse=True dans la fonction sorted().

newlist = sorted(list_to_be_sorted, key=itemgetter('name'), reverse=True)

Cela triera la liste comme :

[{'name': 'Homer', 'age': 39}, {'name': 'Bart', 'age': 10}]

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn