Comment trier une liste Python par plusieurs champs ?

Barbara Streisand
Libérer: 2024-11-23 18:23:10
original
663 Les gens l'ont consulté

How to Sort a Python List by Multiple Fields?

Tri d'une liste Python par plusieurs champs

Tri d'une liste Python par un seul champ est une tâche courante, mais que faire si vous en avez besoin trier par plusieurs champs ?

Considérez la liste suivante créée à partir d'un CSV trié fichier :

list1 = sorted(csv1, key=operator.itemgetter(1))
Copier après la connexion

Ceci trie la liste selon le deuxième champ. Cependant, que se passe-t-il si vous souhaitez trier d'abord par le premier champ, puis par le deuxième champ ?

La solution est d'utiliser une fonction lambda comme argument clé de la fonction sorted() . Une fonction lambda est une fonction anonyme qui permet de définir un critère de tri simple. Dans ce cas, la fonction lambda prend un seul argument, qui représente un élément de la liste, et renvoie un tuple contenant les deux champs par lesquels vous souhaitez trier.

Par exemple, pour trier la liste par le premier et deuxième champs, vous pouvez utiliser la fonction lambda suivante :

sorted_list = sorted(list1, key=lambda x: (x[0], x[1]))
Copier après la connexion

Cette fonction lambda renvoie un tuple contenant les premier et deuxième champs de l'élément de liste. La liste est ensuite triée par ce tuple, ce qui entraîne le tri de la liste d'abord par le premier champ puis par le deuxième champ.

Vous pouvez également utiliser les fonctions lambda pour trier par un champ ascendant et un autre décroissant. Par exemple, pour trier la liste par premier champ croissant et deuxième champ décroissant, vous pouvez utiliser la fonction lambda suivante :

sorted_list = sorted(list1, key=lambda x: (x[0], -x[1]))
Copier après la connexion

Cette fonction lambda renvoie un tuple contenant le premier champ de l'élément de liste et le négatif du deuxième champ. La liste est ensuite triée par ce tuple, ce qui entraîne le tri de la liste par le premier champ ascendant et le deuxième champ décroissant.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal