Comment puis-je utiliser les fonctions lambda dans l'argument `key` de la fonction `sorted()` pour personnaliser le tri en Python ?

Susan Sarandon
Libérer: 2024-10-30 08:34:02
original
1003 Les gens l'ont consulté

How can I use lambda functions within the `sorted()` function's `key` argument to customize sorting in Python?

Comprendre la syntaxe de la clé Lambda de Sorted

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.

La syntaxe Lambda expliquée

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
Copier après la connexion

Ils prennent des variables d'entrée et effectuent une opération spécifiée par l'expression.

Argument clé et Lambda

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)
Copier après la connexion

Par exemple :

sorted([1, 3, 2], key=lambda x: x % 2)
Copier après la connexion

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].

Comprendre la transformation clé

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)
Copier après la connexion

Fonction Lambda :

lambda x: x % 2
Copier après la connexion

Liste originale :

[3, 6, 3, 2, 4, 8, 23]
Copier après la connexion

Liste transformée :

[0, 1, 0, 1, 1, 1, 0]  # 0 indicates odd, 1 indicates even
Copier après la connexion

Liste triée :

[3, 3, 23, 6, 2, 4, 8]  # Odd numbers first, then even numbers
Copier après la connexion

Intuition pour la transformation clé

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é.

Utiliser Lambda pour le tri complexe

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])
Copier après la connexion

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!

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!