Maison > Article > développement back-end > Comment puis-je utiliser les fonctions lambda dans l'argument `key` de la fonction `sorted()` pour personnaliser le tri en Python ?
La fonction sorted() offre un moyen polyvalent de réorganiser les listes en fonction de critères spécifiques. L'argument clé nous permet d'utiliser une logique personnalisée pour le tri, en exploitant les fonctions lambda anonymes.
Les fonctions Lambda sont des fonctions concises et en ligne définies à l'aide du mot-clé lambda. La syntaxe générale est :
lambda input_variable(s): expression
Ils prennent des variables d'entrée et effectuent une opération spécifiée par l'expression.
Dans le contexte de sorted() , l'argument key prend un appelable qui traite chaque élément de la liste et produit une valeur utilisée pour le tri. La manière la plus courante de définir cette fonction consiste à utiliser lambda. La syntaxe :
sorted(list, key=lambda element: expression)
Par exemple :
sorted([1, 3, 2], key=lambda x: x % 2)
La fonction lambda calcule le reste de chaque élément lorsqu'il est divisé par 2, renvoyant essentiellement [0, 1, 0] pour la liste [1, 3, 2]. Cette liste transformée est ensuite utilisée pour le tri, ce qui donne [1, 3, 2].
L'argument clé transforme la liste d'origine en une nouvelle liste basée sur les valeurs renvoyé par la fonction lambda. Illustrons :
Exemple :
sorted([3, 6, 3, 2, 4, 8, 23], key=lambda x: x % 2)
Fonction Lambda :
lambda x: x % 2
Liste originale :
[3, 6, 3, 2, 4, 8, 23]
Liste transformée :
[0, 1, 0, 1, 1, 1, 0] # 0 indicates odd, 1 indicates even
Liste triée :
[3, 3, 23, 6, 2, 4, 8] # Odd numbers first, then even numbers
La liste transformée est essentiellement un masque qui révèle la propriété par laquelle nous voulons trier, dans ce cas, impair/pair. Sorted() trie ensuite la liste d'origine en utilisant l'ordre des valeurs transformées, ce qui donne l'ordre de tri souhaité.
La polyvalence des fonctions lambda permet des scénarios de tri complexes . Par exemple, la fonction lambda suivante trie une liste de tuples en fonction du deuxième élément :
sorted([(3, 5, 8), (6, 2, 8), (2, 9, 4), (6, 8, 5)], key=lambda x: x[1])
Le résultat est une liste triée en fonction du deuxième élément de chaque tuple.
En comprenant la syntaxe et le concept derrière les fonctions lambda dans l'argument clé sorted(), vous pouvez personnaliser efficacement votre logique de tri pour divers scénarios.
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!