ConsigneAppliquer triple à [1,2,3,4,5], puis garder seulement > 10
map() et filter() permettent d'appliquer une fonction à tous les éléments d'une séquence — sans écrire de boucle for.
Syntaxe
map(fonction, sequence)Applique la fonction à chaque élément, renvoie un map object qu'on convertit en liste avec list().
nombres = [1, 2, 3, 4, 5]triple = lambda x: x * 3list(map(triple, nombres))# → [3, 6, 9, 12, 15]Équivalent en list comprehension :
[triple(x) for x in nombres]Syntaxe
filter(fonction, sequence)La fonction est appliquée à chaque élément, et filter garde ceux pour lesquels elle renvoie une valeur que Python juge vraie. On écrit le plus souvent un test qui renvoie True ou False, mais tout ce qui compte pour vrai fait l'affaire : un nombre différent de 0, un texte non vide, une liste non vide. Comptent pour faux : False, 0, le texte vide, la liste vide et None.
nombres = [3, 6, 9, 12, 15]list(filter(lambda x: x > 10, nombres))# → [12, 15]Équivalent en list comprehension :
[x for x in nombres if x > 10]nombres = [1, 2, 3, 4, 5]triple = lambda x: x * 3tripled = list(map(triple, nombres)) # [3, 6, 9, 12, 15]grands = list(filter(lambda x: x > 10, tripled)) # [12, 15]map() et filter() renvoient un itérateur, pas une liste. Tu dois appeler list() (ou les utiliser dans un for) pour voir le résultat.
En Python moderne, on préfère souvent les list comprehensions à map/filter : c'est plus lisible. Mais connaître map/filter reste utile, ils sont très courants en programmation fonctionnelle et dans pandas.
Envie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →