Maison > Article > développement back-end > Comment trier les listes Python par plusieurs champs ?
Tri multi-champs dans les listes Python
En Python, trier une liste par un seul champ est simple à l'aide de la fonction sorted() et le paramètre clé. Cependant, que se passe-t-il si vous devez trier sur plusieurs champs ?
Pour trier une liste sur deux champs, vous pouvez utiliser la puissance des fonctions lambda. Voici comment procéder :
list1 = sorted(csv1, key=operator.itemgetter(1))
Ce code trie la liste par la valeur du champ 1. Pour trier par la valeur du champ 1 puis par la valeur du champ 2, utilisez une fonction lambda :
sorted_list = sorted(list1, key=lambda x: (x[0], x[1]))
Cette fonction lambda crée un tuple contenant les valeurs du champ 1 et du champ 2 pour chaque élément de la liste. La fonction sorted() trie ensuite la liste par le premier élément du tuple (champ 1) puis par le deuxième élément (champ 2).
Alternativement, vous pouvez trier par un champ ascendant et un autre décroissant :
sorted_list = sorted(list1, key=lambda x: (x[0], -x[1]))
Ce code trie selon la valeur du champ 1 par ordre croissant et la valeur dans le champ 2 par ordre décroissant.
Pas besoin d'importer des modules supplémentaires lors de l'utilisation des fonctions lambda. Cette méthode offre un moyen flexible et efficace de trier les listes Python par plusieurs champs en fonction de vos besoins spécifiques.
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!