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 doit renvoyer True ou False. Seuls les éléments pour lesquels elle renvoie True sont gardés.
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 →