Pourquoi utiliser Lambda pour les arguments clés triés ?
La fonction sorted() nécessite de spécifier un argument clé pour trier les éléments d'une manière particulière. Les expressions Lambda, malgré leur apparence arbitraire, remplissent un objectif spécifique dans ce contexte.
Intuition derrière Lambda
- Les fonctions Lambda sont généralement utilisées lorsque vous avez besoin d'un seul -fonction de ligne sans définir de fonction distincte.
- Ils suivent la syntaxe : lambda input_variable(s): expression
Comment Lambda fonctionne pour Sorted
- Les fonctions Lambda dans sorted() fournissent des instructions sur l'extraction des valeurs des éléments de la liste qui guideront le processus de tri.
- L'argument clé dit : "Pendant que nous parcourons la liste, utilisez cette fonction pour transformer chaque élément en une valeur qui servira à trier."
Exemple
Considérez la liste [3, 6, 3, 2, 4, 8, 23] et la fonction lambda suivante :
lambda x : x % 2 == 0
- Ce lambda vérifie si chaque élément de la liste est pair (x % 2 = = 0).
- Trié transforme la liste en fonction de cette fonction lambda, ce qui donne une séquence de 1 (nombres pairs) et de 0 (nombres impairs) : [0, 1, 0, 1, 1, 1, 0]
- La liste finale triée est : [3, 3, 23, 6, 2, 4, 8]
Points supplémentaires
- Même si la liste transformée contient des valeurs booléennes, l'ordre d'origine des éléments est conservé dans les sous-listes.
- La fonction sorted() n'effectue le tri qu'une seule fois, ce qui fait que les nombres pairs ne sont toujours pas triés.
- Les fonctions Lambda peuvent extraire des valeurs d'éléments complexes tels que des tuples, ce qui facilite le tri des listes contenant des structures imbriquées.
Pourquoi variable : variable[0]
La syntaxe key=lambda variable : variable[0] est utilisée lorsque vous souhaitez trier une liste de tuples en fonction du premier élément de chaque tuple. Ici, la variable représente chaque tuple et la variable[0] représente le premier élément de ce tuple.
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!