Maison >développement back-end >Tutoriel Python >Comment trier une liste Python par plusieurs champs à l'aide d'expressions « sorted() » et Lambda ?

Comment trier une liste Python par plusieurs champs à l'aide d'expressions « sorted() » et Lambda ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-25 19:28:171083parcourir

How to Sort a Python List by Multiple Fields Using `sorted()` and Lambda Expressions?

Tri d'une liste Python par plusieurs champs

Si vous avez une liste créée à partir d'un fichier CSV trié à l'aide de sorted(), vous souhaiterez peut-être pour trier davantage la liste selon des critères supplémentaires. Pour trier une liste Python par deux champs, vous pouvez utiliser une combinaison de la fonction sorted() et des expressions lambda.

Dans votre cas, vous pouvez trier la liste list1 par la valeur du champ 1 puis par le valeur dans le champ 2 en utilisant le code suivant :

sorted_list = sorted(list1, key=lambda x: (x[0], x[1]))

L'argument clé dans sorted() prend une fonction qui détermine l'ordre de tri. Dans ce cas, la fonction lambda renvoie un tuple de valeurs utilisées pour le tri. Le premier élément du tuple est la valeur du champ 1 et le deuxième élément est la valeur du champ 2.

Pour trier par un champ croissant et un autre champ décroissant, vous pouvez utiliser des valeurs négatives dans la fonction lambda . Par exemple, pour trier par champ 1 croissant et champ 2 décroissant, utilisez le code suivant :

sorted_list = sorted(list1, key=lambda x: (x[0], -x[1]))

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