Trier avec Lambda en Python
En Python, nous avons les fonctions sorted()
et sort()
disponibles pour trier une liste.
Ces fonctions nous permettent de trier la liste dans l’ordre requis. Par défaut, nous pouvons trier la liste par ordre décroissant ou croissant.
Nous pouvons également utiliser un paramètre dans ces fonctions, qui est le paramètre key
. Cela nous permet de créer notre propre ordre de tri. Nous pouvons utiliser les fonctions lambda
dans ce paramètre, ce qui nous permet de créer notre propre fonction sur une seule ligne.
Par example,
lst = ["id01", "id10", "id02", "id12", "id03", "id13"]
lst_sorted = sorted(lst, key=lambda x: int(x[2:]))
print(lst_sorted)
Production:
['id01', 'id02', 'id03', 'id10', 'id12', 'id13']
Dans l’exemple ci-dessus, nous avons une liste d’identifiants où chaque numéro est précédé des lettres id
. Dans le paramètre key
, nous spécifions une fonction lambda
précisant qu’il faut ignorer les deux premiers caractères (id
) et trier la liste.
Il existe également d’autres manières d’utiliser les fonctions lambda
pour le tri.
Par example,
lst = [("Mark", 1), ("Jack", 5), ("Jake", 7), ("Sam", 3)]
lst_sorted = sorted(lst, key=lambda x: x[1])
print(lst_sorted)
Production:
[('Mark', 1), ('Sam', 3), ('Jack', 5), ('Jake', 7)]
Dans l’exemple ci-dessus, nous avons une liste de tuples. Le tuple se compose d’un nom et d’un nombre. Dans la fonction lambda
, nous spécifions la fonction à trier en fonction du deuxième élément du tuple, c’est-à-dire le nombre.
Notez que nous pouvons changer l’ordre en descendant en utilisant le paramètre reverse
et en le réglant sur True
.
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn