Trier avec Lambda en Python

Manav Narula 22 juin 2021
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.

Auteur: Manav Narula
Manav Narula avatar Manav Narula avatar

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

Article connexe - Python Sort