Python >> Tutoriel Python >  >> Python

Comment trier en Python avec la fonction Lambda comme argument clé ?

Défi :Cet article montre comment trier une liste Python en utilisant le key argument qui prend un objet fonction comme argument.

Solution rapide : Vous pouvez utiliser la fonction lambda pour créer la fonction à la volée, comme illustré dans l'exemple suivant :

pairs = [(1, 'one'),
         (2, 'two'),
         (3, 'three'),
         (4, 'four')]

# lexicographical sorting (ascending)
pairs.sort(key=lambda pair: pair[1])
print(pairs[0][1])
# four

Explication  :Le code utilise l'argument clé et lui transmet une fonction lambda.

Le list.sort() la méthode prend une autre fonction en tant que key facultatif argument qui vous permet de modifier le comportement de tri par défaut.

Argument clé d'explication

La fonction key est ensuite appelée sur chaque élément de la liste et renvoie une autre valeur en fonction de laquelle le tri est effectué. Par conséquent, la fonction clé prend un argument d'entrée (un élément de liste) et renvoie une valeur de sortie (une valeur qui peut être comparée).

Il y a deux fonctionnalités intéressantes dans le code que vous devez comprendre pour comprendre pleinement comment cela fonctionne :

  • Comment trier lexicographiquement par ordre croissant .
  • Comment utiliser la fonction lambda.

Trier par ordre croissant

Tout d'abord, nous ne trions pas par nombres entiers croissants, c'est-à-dire 1,2,3,4, mais par chaînes de caractères croissantes en fonction de leur position dans l'alphabet, c'est-à-dire 'four' , 'one' , 'three' , 'two' . Ainsi, le deuxième élément de tuple du premier élément de liste est 'four' .

Utilisation de la fonction Lambda

Deuxièmement, la fonction lambda semble être un concept abstrait. Pourtant, ce n'est que du vieux vin dans une nouvelle bouteille.

Une fonction lambda n'est rien d'autre qu'une fonction anonyme avec une syntaxe spéciale (trouver une introduction détaillée des fonctions lambda dans cet article de blog Finxter).

En bref : Le(s) nom(s) de variable entre le lambda mot-clé et les deux-points (:) définissent les arguments de la fonction. Le corps après les deux-points utilise les arguments pour définir la valeur de retour de la fonction.

Vous pouvez parcourir le didacticiel Instagram suivant (balayez vers la droite) pour en savoir plus sur cette fonctionnalité Python :

Dans le puzzle, nous utilisons la fonction lambda comme clé pour la fonction de tri . La clé définit que la liste doit être triée après la deuxième valeur du tuple qui est une chaîne.

Vidéo de tri de liste Python

Puzzle connexe

C'est l'un des puzzles Python les plus populaires sur l'application Finxter. Avant d'expliquer le résultat, essayez de faire votre propre estimation :

Exercice :Quel est le résultat de ce puzzle ?

Êtes-vous un codeur maître?
Testez vos compétences maintenant !


Post précédent