sorted, min, max
sorted, min et max trient ou extraient les extrêmes, et leur paramètre key choisit le critère : une colonne, une longueur, un calcul. C'est l'usage le plus courant des fonctions lambda.
- tri
- sorted
- sort
- key
- reverse
- min
- max
- map
- filter
Syntaxe
sorted(iterable, key=fonction, reverse=False) # nouvelle listeliste.sort(key=fonction, reverse=False) # tri sur placemin(iterable, key=fonction, default=valeur)max(iterable, key=fonction)Exemple
ventes = [("Lyon", 420), ("Paris", 980), ("Lille", 310), ("Nantes", 420)]par_ca = sorted(ventes, key=lambda v: v[1], reverse=True)print(par_ca[0]) # → ('Paris', 980)print(max(ventes, key=lambda v: v[1])[0]) # → Parisprint(min(ventes, key=lambda v: v[1])) # → ('Lille', 310)# Tri multicritère : CA décroissant, puis ville par ordre alphabétiqueprint(sorted(ventes, key=lambda v: (-v[1], v[0])))# → [('Paris', 980), ('Lyon', 420), ('Nantes', 420), ('Lille', 310)]print(max([], default=0)) # → 0À retenir
- sorted renvoie une nouvelle liste et accepte tout itérable ; liste.sort() modifie la liste et renvoie None. Le tri est stable : à critère égal, l'ordre d'origine est conservé.
- Pour un tri multicritère, renvoyez un tuple depuis key ; le signe moins inverse un critère numérique sans inverser les autres.
- map(f, l) et filter(cond, l) existent, mais une compréhension est généralement plus lisible : [f(x) for x in l if cond(x)]. operator.itemgetter(1) remplace avantageusement lambda v: v[1].
- Piège : max ou min sur une séquence vide lève ValueError. Passez default= quand la liste peut être vide, par exemple après un filtre.
- Piège : les chaînes se trient par code de caractère, donc "Zoé" passe avant "alice" et "Émile" après "zoé". key=str.casefold règle la casse ; les accents demandent une clé de normalisation (unicodedata) ou le module locale.
Voir aussi
- lambdalambda crée une petite fonction anonyme réduite à une seule expression. Elle sert surtout à passer un critère à sorted, min, max ou à une méthode pandas, là où une def serait disproportionnée.
- ListesUne liste est une suite ordonnée et modifiable de valeurs, indexée à partir de 0. C'est la structure de base pour stocker une série de notes, de ventes ou de lignes à traiter dans l'ordre.
- CompréhensionsUne compréhension construit une liste, un dictionnaire ou un ensemble en une seule expression qui transforme et filtre. Employez-la dès qu'une boucle ne sert qu'à remplir une collection.